1.从本质上1) 0是int型的字面值常量2) NULL 是预处理变量,定义在 cstdlib 中,其值是03) nullptr 是 nullptr_t 类型的字面值。
2.cstdlib 中 NULL 的定义#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif
之所以这样定义的原因,是因为在C语言中,允许 void* 类型隐式转换为任意指针类型,而C++中不允许这
样的强制类型转换,但是可以为任意类型的指针赋0值,因此,在C++中将NULL 定义为0.
3.0 比 NULL 好
在网上的资料中,均是一致认为 0 比 NULL 好,因为很多可能会出错的时候,使用 0 更直观,如:
void test(int i){ cout << "in int" << endl; }
void test(int * i){ cout << "in int *" << endl; }
int main()
{test(0); //输出 in inttest(NULL); //输出 in int
}
此时,两个函数调用均会调用参数为 int 的 test,使用 0 调动的版本看起来更加直观,因为 0 本身是一
个 int 类型的字面值常量,而会潜意识的认为 NULL 应该是一个指针类型,不利于查错
4.nullptr 比 0 更好
nullptr 是 nullptr_t 类型的常量,而该类型定义了转到任意指针类型的转换操作符,同时不允许该类型
的对象转换到非指针类型,在上面的调用例子中,使用 nullptr,将会调用第二个函数,

C++11中0与 NULL与nullptr之间的关系相关推荐

  1. C# 11 中的参数 null 检查

    C# 11 中的参数 null 检查 Intro C# 11 将引入一个新的操作符 !! 来简化我们代码中的对于参数的 null 检查,昨天发布的 .NET 7 Preview 1 已经支持了这一语法 ...

  2. storm中worker、executor、task之间的关系

    这里做一些补充: worker是一个进程,由supervisor启动,并只负责处理一个topology,所以不会同时处理多个topology. executor是一个线程,由worker启动,是运行t ...

  3. GPS 数据中的精度因子(DOP)与协方差之间的关系 (参考链接)

    GPS 数据中的精度因子(DOP)与协方差之间的关系 参考链接: [1] evenator. libnmea_navsat_driver/driver.py [EB/OL]. https://gith ...

  4. php中0与NULL,False,“0”,\0的区别

    先说明一下结论:0与NULL,False,"0","\0"的值相同,都以0存储,但是类型不同, 再看一段实验代码: <?php $test=0; if($ ...

  5. unity中awak,start,update之间的关系(转)

    正式开始学习Unity了.当然,第一个遇到的问题就是Awake和Start的问题,之前在网上查过一下这两者的区别,简单记忆了一下,认为自己知道了两者的区别.不过实际用起来,发现对于这两者到底是什么区别 ...

  6. 【FFMPEG源码分析】ffmpeg中context与AVClass,AVOption之间的关系

    通过前面三篇文章的分析大致了解了ffmpeg中demuxer/decoder模块的内部大致结构和数据处理流程.在阅读源码的过程中经常会看到XXXContext,AVClass xxx_class, A ...

  7. unity中单位是米还是厘米_2019-08-22Unity中的单位长度与像素之间的关系

    一:什么是像素? 像素是由很多个小方格组成,每一个小方格上都存储了位置信息和色彩信息.像素是图像的最小单位 分享一个知识点:图像分为两类,位图和矢量图 位图(点阵图):由多个像素组成,当放大时被分为多 ...

  8. unity中awak,start,update之间的关系

    转载地址 正式开始学习Unity了.当然,第一个遇到的问题就是Awake和Start的问题,之前在网上查过一下这两者的区别,简单记忆了一下,认为自己知道了两者的区别.不过实际用起来,发现对于这两者到底 ...

  9. Android中的APK,TASK,PROCESS,USERID之间的关系

    开发Android已经有一段时间了,今天接触到底层的东西,所以对于进程,用户的id以及Android中的Task,Apk之间的关系,要做一个研究,下面就是研究结果: apk一般占一个dalvik,一个 ...

最新文章

  1. c语言可以将负数强制转换成正数吗_C语言笔记(一、概述)
  2. 基于JAVA+SSM+MYSQL的菜谱学习平台
  3. I9 9900K线程_收藏党抓紧了!英特尔停产i9-9900K特色包装,只因运输太浪费
  4. 语义分割——Spatial Pyramid Pooling (SPP)的作用
  5. scala数组与java数组对比
  6. csv文件-读取方式、字典
  7. Linux的相关资源帖
  8. 创建dqn的深度神经网络_深度Q网络(DQN)-II
  9. python实现将android手机通讯录vcf文件转化为csv
  10. ​倒卖二手书,一个被忽略的项目,​做的​好月赚1w+
  11. 教育培训招生小程序源码
  12. 【Simscape】用Simscape实现三维物理仿真(三)——创建一个滑块单摆系统
  13. 用python写飞机大战过几天不能运行了_最近写的一个飞机大战的程序,写到一半有一个已经写好的函数但不能运用,强行运行程序秒退,百思不得其姐...
  14. 聚播群控微信二次开发sdk完整API
  15. mysql 取top 10_我的mysql如何分组取top10?
  16. html与jsp、jsp与jsp之间的交互
  17. DDLMS-DFE算法
  18. 正方教务系统php登陆,正方教务管理系统最新版无条件注入GetShell | wooyun-2015-0122523| WooYun.org...
  19. 【Python自学笔记】报错No module Named Wandb
  20. Xilinx Aurora 8B/10B IP核详解和仿真

热门文章

  1. windows下检測文件改变
  2. [转载]SVN使用教程
  3. linux 内核源码学习
  4. 春Phone计划 51cto沙龙郑州站活动
  5. JHipster简介
  6. BMP文件格式详解(BMP file format) (转)
  7. 使用FastReport 3.0及以上版本创建动态报表的几个技巧(转)
  8. TensorFlow学习笔记--第三节张量(tensor)及其定义方法
  9. rdd数据存内存 数据量_Spark 性能优化(二)——数据倾斜优化
  10. yolov3模型识别不出训练图片_技术实践丨基于MindSpore框架Yolov3-darknet模型的篮球动作检测体验...