空指针/0/NULL

空指针是一个被赋值为0的指针,在没有被具体初始化之前,其值为0.

NULL 是一个标准规定的宏定义,用来表示空指针常量。

#define NULL 0   或者

#define NULL ((void*)0)

判断一个指针是否为空指针:

f(!p) 和 if(p == NULL) ,if(NULL == p)

最好使用后两种,有些平台NULL不是0,这时候程序就会有问题了。

其中if(NULL == p) 与if(p == NULL) 没有区别,前一种是避免错误的写法(后面的容易写成P=NULL,编译器不能发现。而前面的写成NULL=p时会编译不过)。

C++里推荐置0指针,这样编译器可检测出0值的指针,程序可判断指针对象为空

  1. char* str = "str";
  2. str = 0;
  3. //str = NULL;
  4. if(str == NULL)
  5. qDebug() << "NULL true";
  6. if(str == 0)
  7. qDebug() << "0  true";
  8. //两个结果都是:
  9. //NULL true
  10. //0 true
 

最新文章

  1. Js_Ajax_输入词提示
  2. 浅谈Dynamic 关键字系列之三(上):ExpandoObject, DynamicObject, DynamicMetaObject
  3. 类库引用EF
  4. 原创:无错版!让DEDE只生成一个RSS文件,不分栏目
  5. 自增锁预分配ID
  6. 【DP/二分】BZOJ 1863:[Zjoi2006]trouble 皇帝的烦恼
  7. oracle数据库如何保存SQL语句?
  8. Lua 解释器
  9. Gentoo安装详解(三)-- 配置系统
  10. 【推荐】开源项目minapp-重新定义微信小程序的开发
  11. cesium 热力图
  12. Linux 系统分级及root权限相关
  13. Linux 安装JavaEE环境之Tomcat安装笔记
  14. 【转】Castle Windsor之组件注册
  15. Bootstrap-CSS:网格系统
  16. java开发一个应用的总结
  17. 鼠标键盘失灵对策(Windows8.1)
  18. ArcEngine真正释放锁文件,彻底移除图层
  19. Codeforces Round #261 (Div. 2)[ABCDE]
  20. [转载]最完整PHP.INI中文版

热门文章

  1. webpack4快速上手
  2. 11_Redis_事务
  3. 关于网站子目录绑定二级域名的方法(php网站手机端)
  4. 如何处理请求返回的二进制数据流转化成xlsx文件?
  5. ubuntu16.04中不能连接无线网络
  6. jquery 去除 css 的 background-image 样式
  7. 扫描局域网ip存活
  8. Semantic 导航条
  9. Nginx 配置访问静态资源
  10. Mysql数据库多对多关系未建新表