为了账号安全,请及时绑定邮箱和手机立即绑定

确认内存是否申请成功

为什么确认内存是否申请成功的if语句是“if(NULL == p)”,而不是“if(p == NULL)”?感觉逻辑上说不过去呢

正在回答

2 回答

其实最好是用if(nullptr==p)来判断;

在c语言中NULL是宏定义#define NULL  ((void*)0);

但是因为c++是强类型语言,void *是不能隐式转换成其他指针类型的;

这时候C++ 11的nullptr可以很好的解决这个问题

0 回复 有任何疑惑可以回复我~

if(NULL == p)和f(p == NULL)两者并没什么区别,都是判断指针p是否为空。
但是当考虑到出错检查时,if(NULL == p)写法更好,因为如果误写为if(NULL = p)的时候,编译器就会提示出错(因为常量不能被赋值);而if(p == NULL)如果误写为if(p = NULL),则编译器不会报错。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

确认内存是否申请成功

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信