我们可以在不知道其类型的情况下取消引用 void 指针吗?

标签 c

我有一个关于c语言中void指针的问题。我想知道我们是否可以在不知道 类型 的情况下取消引用 void 指针

最佳答案

不会,因为你不知道如何解释相应内存空间包含的数据。内存本身没有类型,包含类型信息的是指针。例如,int * 指向的内存被解释为 int

当取消引用 void * 时,编译器无法判断从该地址开始的字节应被解释为哪种类型。它可以是 doubleunsigned long,甚至是 char 数组。

但是,可以通过强制转换来取消引用 void *,因为强制转换运算符包含有关对象类型的信息。

关于我们可以在不知道其类型的情况下取消引用 void 指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36931660/

相关文章:

c - 捕获输入文本后 Scanf 不会继续

c - 程序无法识别 if-else 语句中的字符输入

C 基本环形缓冲区问题

c - 在 printf 语句 C 的开头填充零

C - 将 2 for 循环重写为 1 for 循环以复制数组。

c - 获取多字节 UTF-8 序列的长度

c - 枚举对象设置为不等于其各自枚举常量的值

c - 链表未定义行为

c - 主进程创建一个新的子进程。这个子进程会创建另一个子进程,以此类推,直到创建N个进程

c++ - 在 C++ 中读取磁盘中文件的最快方法是什么?