我有一个关于c语言中void指针的问题。我想知道我们是否可以在不知道 类型 的情况下取消引用 void 指针?
最佳答案
不会,因为你不知道如何解释相应内存空间包含的数据。内存本身没有类型,包含类型信息的是指针。例如,int *
指向的内存被解释为 int
。
当取消引用 void *
时,编译器无法判断从该地址开始的字节应被解释为哪种类型。它可以是 double
、unsigned long
,甚至是 char
数组。
但是,可以通过强制转换来取消引用 void *
,因为强制转换运算符包含有关对象类型的信息。
关于我们可以在不知道其类型的情况下取消引用 void 指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36931660/