【发布时间】:2017-10-19 12:16:03
【问题描述】:
假设a是一个指针,在为它分配内存后,我想检查内存是否分配成功,我见过两种方法:
if(a != NULL)
if(a)
第一个和第二个语句有什么区别?
【问题讨论】:
-
它们最终会是一样的东西。
-
NULL 是一个通常定义为 0 的宏,因此第一个表达式与 (a != 0) 相同,第二个表达式还检查是否 a != 0,因此其编辑相同:通常
-
是的,如果
a是指针,如果a不是指针可能会有所不同,具体取决于NULL的定义。 -
@PawełDymowski 不正确,NULL 是一个定义为实现定义的空指针常量的宏。
-
他们做同样的事情。我看到的唯一区别是可读性。
标签: c if-statement nul