NULL和nullptr的区别

        在c++11中引用了nullptr关键字,专门用来代表空指针。

NULL

        NULL为宏定义,本质上是整数0           #define NULL 0

        在函数调用的过程中,将NULL当成0来使用。

nullptr

        nullptr为空指针,不是对整数0的宏替换。

        nullptr是指针类型,不是整数0,可以隐式转换为任意指针类型,但不能隐式转换为整数类型

使用nullptr代替NULL的原因

        避免函数重载引起歧义,导致编译器无法正确选择调用重载函数。

        使用 nullptr 可以更清晰地表达代码的意图,让人一眼就能够理解该指针是空指针。

        比如下面这个例子

void myFunction(int x);
void myFunction(char* ptr);

        如果传入NULL,则编译器执行参数是整数类型的函数,而不是指针类型的函数。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值