此时的DEBUG窗口
LLDB查看结果也是这样
我这里判断了是否为空,debug看到了结果是NULL,但是却执行到了if里面去,是不是有什么疏忽的地方,大佬们指点一下
此时的DEBUG窗口
LLDB查看结果也是这样
我这里判断了是否为空,debug看到了结果是NULL,但是却执行到了if里面去,是不是有什么疏忽的地方,大佬们指点一下
从本质上看0、NULL和 nullptr
1) 0是int型的字面值常量
2) NULL 是预处理变量,定义在 cstdlib 中,其值是0
3) nullptr 是 nullptr_t 类型的字面值。
从字面上来讲,NULL是个空指针常量,而在C++中NULL扩展为常数0,它是int型。因此常数0既是整数常量,也是空指针常量。C++11标准引入了关键字nullptr,它作为一种空指针常量,是 nullptr_t 类型的常量,而该类型定义了转到任意指针类型的转换操作符,同时不允许该类型的对象转换到非指针类型。
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
nullptr