相关疑难解决方法(0)

对C++中的指针使用NULL或0(零)吗?

在C++的早期,当它被用螺栓固定在C之上时,你不能使用NULL,因为它被定义为(void*)0.你不能将NULL分配给除了之外的任何指针void*,这使得它变得毫无用处.在那些日子里,人们接受了你使用0(零)空指针.

直到今天,我继续使用零作为空指针,但我周围的人坚持使用NULL.我个人认为给NULL现有值一个name()没有任何好处- 因为我也喜欢将指针测试为真值:

if (p && !q)
  do_something();
Run Code Online (Sandbox Code Playgroud)

然后使用零更有意义(如果你使用NULL,你不能逻辑使用p && !q- 你需要明确比较NULL,除非你假设NULL是零,在这种情况下为什么使用NULL).

有没有客观的理由偏好零而不是NULL(反之亦然),或者只是个人偏好?

编辑:我应该添加(并且最初要说)使用RAII和异常,我很少使用零/ NULL指针,但有时你确实需要它们.

c++ null

186
推荐指数
13
解决办法
13万
查看次数

在C++中检查Null指针的首选方法是什么?

选项A:

if (NULL == pSomethingColumn) // Yes, we use Yoda conditions
if (NULL != pSomethingColumn)
Run Code Online (Sandbox Code Playgroud)

要么

if (pSomethingColumn)
if (!pSomethingColumn)
Run Code Online (Sandbox Code Playgroud)

我正在寻找解释推理的参考资料.

我听说有人说从技术上讲NULL不一定要定义为0,而是来吧!如果是这种情况,那么吸盘(我们的应用程序)会以-2147483648不同的方式崩溃.

那么,如果NULL != 0,那么我们将遇到大问题.

请帮我解决一个毫无意义的语法辩论.我对这两种方式都不是特别关注; 只是寻找官方的方式.谢谢.

PS我们正在使用Visual Studio C++编译器.

c++ null pointers coding-style

3
推荐指数
2
解决办法
867
查看次数

'null'和'NULL'相同吗?

在C / C ++中,null和NULL常数是否完全相同?

我注意到,当我在Visual Studio中编写代码时,null和NULL不会突出显示相同的语法,并且编译结果与在代码的某些部分中使用null而不是NULL并不相同。

c c++

2
推荐指数
1
解决办法
187
查看次数

标签 统计

c++ ×3

null ×2

c ×1

coding-style ×1

pointers ×1