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 兄妹拍照祝福语简短的话