【C语言】空指针

本文介绍了C语言中的空指针概念,它是一个不指向任何对象或函数的特殊指针值,通常用NULL表示。空指针在动态内存分配失败时会被返回,初始化指针变量时也常用NULL。特别强调空指针不等同于未初始化的指针,后者可能成为野指针,引发非法内存访问。理解空指针与野指针的区别对于防止程序错误至关重要。
摘要由CSDN通过智能技术生成

提示:我们要区分清楚什么是野指针,什么是空指针,这篇文章介绍什么是空指针,野指针的详解请见博客【C语言】野指针。


一,什么是空指针

每一个指针类型都有一个特殊的值-----“空指针”。空指针与同类型的其他指针值都不同,它“保证与任何对象或函数的指针值都不相等”,也就是说空指针不会指向任何地方,它不是任何对象或函数的地址。简单点说,一个指针不指向任何数据,我们就称之为空指针,空指针用NULL表示。

int* p=NULL;

我们用空指针NULL来初始化指针变量。

二,特别说明

1.我们常用的动态内存开辟函数,如malloc,calloc,realloc,如果它们开辟动态内存失败就会返回空指针,所以动态开辟函数后,都要判断是否开辟成功。
2.空指针不等同于未初始化的指针,未初始化的指针通常指野指针,即空指针不是野指针,野指针可以指向任何地方(乱指一气),可能会造成非法访问内存地址,而空指针它不指向任何对象。
3.在源码中用来表示空指针的常量是整数0,NULL使指针指向0,大多数系统中都将0作为不被使用的地址(所以上面才说NULL不指向任何数据),但也有些系统会使用0,任何把NULL定义为其它值,所以也不能所NULL就等于0.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_麦子熟了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值