返回介绍

6.8.1 空指针

发布于 2025-04-11 22:33:02 字数 828 浏览 0 评论 0 收藏 0

C 语言中,可以将一个指针初始化或赋值为一个空指针。所谓空指针,就是不指向任何对象的指针。例如:

int *pi = NULL;

定义一个 int 类型的指针变量 pi,并将其初始化为 NULL。这个“NULL”是一个宏,关于宏,会在后面的章节中介绍,现在只要知道“NULL”对应的值是 0 就行了。因此,也可以这样写:

int *pi = 0;

还可以使用赋值的方式,例如:

int *pi;
pi = NULL;

或者是:

int *pi;
pi = 0;

将一个“NULL”或者“0”初始化或者赋值给指针变量,则表示该指针是一个空指针,它不会指向任何对象。大家可能会想,这样做有什么好处呢?

使用空指针的好处有两点:①防止指针成为“野指针”;②数据被意外修改。当指针变量被定义为一个局部动态的变量时,如果没有对其初始化,那么其值是未确定的。也就是说指针具体指向了哪儿,谁也不知道,因此将这样的指针称为野指针。由于野指针指向了未知区域,如果对野指针进行解引用,并造成了数据的修改,可能会让程序产生一些非常诡异的结果,甚至有可能破坏重要的程序数据,所以要慎之又慎,而且对于此类问题,调试起来也相对困难。另外,在程序中可能会使用一些临时性的指针来执行特别的任务。当不再使用这些临时指针时,应该及时将其设置为空指针,以防止误用,再次通过这些指针造成数据的修改。

由于空指针不会指向任何对象,因此,我们不应该对空指针进行解引用操作。如果不小心对空指针进行解引用并且对其进行赋值,编译阶段可能会给予通过,但程序运行时会出现错误,甚至让程序崩溃。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。