当前位置:首页 > C++系列 > C++实例技巧 > 正文内容

C++ Null 指针的使用

1个月前 (10-16)C++实例技巧213

这里有必要说下关于空指针的使用注意事项, C++ 中,如果一个指针不指向任何数据,就称之为空指针,用 NULL 表示。

注意,NULL 是区分大小写的,即 NULL 不能写成 null。

C++ NULL指针

定义

#define NULL ((void *)0)

说明

(void *)0 表示把数值 0 强制转换为 void * 类型,最外层的 ( ) 把 宏定义 的内容括起来,进行宏定义时也推荐这么做,防止发生歧义

头文件

NULL 定义在 stdio.h 头文件中。

举个例子吧:

#include <iostream>
using namespace std;
int main()
{
    cout << "草堂笔记(www.zhoubotong.site)\n" << endl;
    int *ptr ;
    cout << "ptr  = " << ptr  << endl;
    return 0;
}

输出:

image.png

上面我们定义了一个指针,该指针没有进行任何的初始化,接着,我们打印了该指针变量的值,我们发现,输出是 0,当然也可以像下面这样定义:

#include <iostream>
using namespace std;
int main() {
  cout << "草堂笔记(www.zhoubotong.site)\n" << endl;
  int *ptr = NULL;
  cout << "ptr  = " << ptr << endl;
  if (!ptr) {
    cout << "prt为空指针\n" << endl;
  }
  return 0;
}

输出:

image.png

上面我们显式的将指针变量 pa 赋值为了 NULL,在大多数的操作系统上,程序不允许访问地址为 0 的内存,
因为该内存是操作系统保留的。但是内存地址 0 有特别重要的意义,它表明该指针不指向一个可访问的内存位置。

但是按照惯例,如果指针包含空值(零值),则表示它不指向任何东西。
上面我们用if判断空指针,这里顺带说明下, 如需检查一个空指针,我们可以使用 if 语句:

if(ptr)     /* 如果 ptr 非空 */
if(!ptr)    /* 如果 ptr 为空 */

总结:

我们在定义指针时或者指针使用完毕,不再使用时,推荐将指针设置为 NULL,表明该指针不再指向任何数据。


    扫描二维码推送至手机访问。

    版权声明:本文由周伯通的博客发布,如需转载请注明出处。

    本文链接:http://zhoubotong.site/post/85.html

    分享给朋友:
    返回列表

    没有更早的文章了...

    下一篇:C++构造函数初始化列表注意的坑

    相关文章

    C++构造函数初始化列表注意的坑

    C++构造函数初始化列表注意的坑

    之所以写这篇文章,是觉得里面有些细节如果不注意,很容易出错或踩坑,网上有很多教程对这块的描述部分存在错误。希望下面的介绍能给大家带来帮助。大家知道当我们需要初始化类中的成员变量时,除了可以直接在构造函...

    发表评论

    访客

    看不清,换一张

    ◎欢迎参与讨论,请在这里发表您的看法和观点。