文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
6.8.1 空指针
C 语言中,可以将一个指针初始化或赋值为一个空指针。所谓空指针,就是不指向任何对象的指针。例如:
int *pi = NULL;
定义一个 int 类型的指针变量 pi,并将其初始化为 NULL。这个“NULL”是一个宏,关于宏,会在后面的章节中介绍,现在只要知道“NULL”对应的值是 0 就行了。因此,也可以这样写:
int *pi = 0;
还可以使用赋值的方式,例如:
int *pi; pi = NULL;
或者是:
int *pi; pi = 0;
将一个“NULL”或者“0”初始化或者赋值给指针变量,则表示该指针是一个空指针,它不会指向任何对象。大家可能会想,这样做有什么好处呢?
使用空指针的好处有两点:①防止指针成为“野指针”;②数据被意外修改。当指针变量被定义为一个局部动态的变量时,如果没有对其初始化,那么其值是未确定的。也就是说指针具体指向了哪儿,谁也不知道,因此将这样的指针称为野指针。由于野指针指向了未知区域,如果对野指针进行解引用,并造成了数据的修改,可能会让程序产生一些非常诡异的结果,甚至有可能破坏重要的程序数据,所以要慎之又慎,而且对于此类问题,调试起来也相对困难。另外,在程序中可能会使用一些临时性的指针来执行特别的任务。当不再使用这些临时指针时,应该及时将其设置为空指针,以防止误用,再次通过这些指针造成数据的修改。
由于空指针不会指向任何对象,因此,我们不应该对空指针进行解引用操作。如果不小心对空指针进行解引用并且对其进行赋值,编译阶段可能会给予通过,但程序运行时会出现错误,甚至让程序崩溃。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论