[软件资料] 空指针(NULL)与void *

[复制链接]
399|10
 楼主| forgot 发表于 2025-4-30 11:07 | 显示全部楼层 |阅读模式
在C语言中,如果一个指针不指向任何数据,我们就称之为空指针,用NULL表示;void 指针与空指针 NULL 不同:NULL 说明指针不指向任何数据,是“空的”;而 void 指针实实在在地指向一块内存,只是不知道这块内存中是什么类型的数据。
磨砂 发表于 2025-6-6 16:20 | 显示全部楼层
空指针
表示不指向任何有效内存的指针,通常定义为
#define NULL ((void *)0)

晓伍 发表于 2025-6-6 18:32 | 显示全部楼层
空指针
指向地址为
0
的内存区域(虚拟地址空间的保留区,不可访问)

八层楼 发表于 2025-6-6 20:50 | 显示全部楼层
void*
指向任意类型的数据,但具体类型未知,需通过强制类型转换才能使用

观海 发表于 2025-6-6 23:01 | 显示全部楼层
void
通常由动态内存分配函数
返回,或通过类型转换赋值

guanjiaer 发表于 2025-6-7 09:22 | 显示全部楼层
空指针
表示指针未初始化或无效或者
作为哨兵值

heimaojingzhang 发表于 2025-6-7 11:50 | 显示全部楼层
任何类型的指针均可赋值为NULL,而void
可接受任意类型指针的赋值
,但需强制类型转换才能使用

keaibukelian 发表于 2025-6-7 14:12 | 显示全部楼层
void*
指向实际分配的内存,但类型未知

paotangsan 发表于 2025-6-7 16:33 | 显示全部楼层
NULL是宏定义,更明确表示空指针;直接赋值[size=0.875]0[size=0.875]null是不专业的做法
renzheshengui 发表于 2025-6-7 19:03 | 显示全部楼层
void *不能直接进行指针运算,需转换为具体类型,也不能调用具体类型的函数,需转换为对象类型。
wowu 发表于 2025-6-7 21:19 | 显示全部楼层
空指针(NULL)表示“无指向”,用于初始化或标记无效指针,避免悬空指针问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2112

主题

14683

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部