打印
[软件资料]

空指针(NULL)与void *

[复制链接]
205|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*
指向任意类型的数据,但具体类型未知,需通过强制类型转换才能使用

使用特权

评论回复
5
观海| | 2025-6-6 23:01 | 只看该作者
void
通常由动态内存分配函数
返回,或通过类型转换赋值

使用特权

评论回复
6
guanjiaer| | 2025-6-7 09:22 | 只看该作者
空指针
表示指针未初始化或无效或者
作为哨兵值

使用特权

评论回复
7
heimaojingzhang| | 2025-6-7 11:50 | 只看该作者
任何类型的指针均可赋值为NULL,而void
可接受任意类型指针的赋值
,但需强制类型转换才能使用

使用特权

评论回复
8
keaibukelian| | 2025-6-7 14:12 | 只看该作者
void*
指向实际分配的内存,但类型未知

使用特权

评论回复
9
paotangsan| | 2025-6-7 16:33 | 只看该作者
NULL是宏定义,更明确表示空指针;直接赋值[size=0.875]0[size=0.875]null是不专业的做法

使用特权

评论回复
10
renzheshengui| | 2025-6-7 19:03 | 只看该作者
void *不能直接进行指针运算,需转换为具体类型,也不能调用具体类型的函数,需转换为对象类型。

使用特权

评论回复
11
wowu| | 2025-6-7 21:19 | 只看该作者
空指针(NULL)表示“无指向”,用于初始化或标记无效指针,避免悬空指针问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2012

主题

14297

帖子

59

粉丝