这里有必要说下关于空指针的使用注意事项, 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;
}
输出:
上面我们定义了一个指针,该指针没有进行任何的初始化,接着,我们打印了该指针变量的值,我们发现,输出是 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;
}
输出:
上面我们显式的将指针变量 pa 赋值为了 NULL,在大多数的操作系统上,程序不允许访问地址为 0 的内存,
因为该内存是操作系统保留的。但是内存地址 0 有特别重要的意义,它表明该指针不指向一个可访问的内存位置。
但是按照惯例,如果指针包含空值(零值),则表示它不指向任何东西。
上面我们用if判断空指针,这里顺带说明下, 如需检查一个空指针,我们可以使用 if 语句:
if(ptr) \* 如果 ptr 非空 */
if(!ptr) \* 如果 ptr 为空 */
总结:
我们在定义指针时或者指针使用完毕,不再使用时,推荐将指针设置为 NULL,表明该指针不再指向任何数据。
原文地址:http://www.cnblogs.com/phpper/p/16796958.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性