C和C ++中的“ void *”有何区别?
在本节中,我们将看到C中的void指针和C++中的void指针之间有什么区别。它们都是空指针,但是在C中,可以将空指针分配给任何指针类型,但是在C++中,我们不能这样做。在C++中,我们必须显式地进行类型转换以进行分配。
在下面的示例中,当我们用C编写一些代码时,可以执行这些行。
void *p; int *int_ptr = p;
这在C语言中可以正常工作。现在,如果我们使用malloc()分配一些内存空间,则可以使用显式类型转换,但是如果不这样做,也可以。malloc()函数返回void指针。
int *int_ptr = malloc(sizeof(int) * 10);
在这里,返回的void指针被隐式转换为整数类型的指针。
现在,如果要在C和C++中运行同一程序,则应该显式地转换指针。
void *p; int *int_ptr = (int *) p; int *arr_ptr = (int *) malloc(sizeof(int) * 10);
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短