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);
以上是 C和C ++中的“ void *”有何区别? 的全部内容, 来源链接: utcz.com/z/327249.html