对C ++中的指针使用NULL或0(零)吗?
在C ++的早期,当它被用螺栓固定在C之上时,你不能使用NULL,因为它被定义为(void*)0
。你不能将NULL分配给除了之外的任何指针void*
,这使得它变得毫无用处。在那些日子里,人们接受了你使用0
(零)空指针。
直到今天,我继续使用零作为空指针,但我周围的人坚持使用NULL
。我个人认为给NULL
现有值的名称()没有任何好处- 因为我也喜欢将指针测试为真值:
if (p && !q) do_something();
然后使用零更有意义(如果你使用NULL
,你不能逻辑使用p && !q
- 你需要明确比较NULL
,除非你假设NULL
是零,在这种情况下为什么使用NULL
)。
有没有客观的理由偏好零而不是NULL(反之亦然),或者只是个人偏好?
编辑:我应该添加(并且最初要说)使用RAII和异常,我很少使用零/ NULL指针,但有时你确实需要它们。
元芳怎么了
慕的地8271018
相关分类