检查指针值:if (pointer) 与 if (pointer != NULL)
在 C 中使用指针时,这一点至关重要以确定其有效性。是否可以简单地使用表达式 if (pointer) 来测试指针是否为非 NULL?还是需要显式写if(pointer != NULL)?
答案:
C标准允许你使用if(指针)来测试指针有效性。非空指针隐式转换为 true,而空指针则隐式转换为 false。此行为在 C 11 标准的布尔转换部分中定义:
<code class="cpp">A prvalue of arithmetic, unscoped enumeration, pointer, or pointer to member type can be converted to a prvalue of type bool. A zero value, null pointer value, or null member pointer value is converted to false; any other value is converted to true. A prvalue of type std::nullptr_t can be converted to a prvalue of type bool; the resulting value is false.</code>
因此,您可以安全地编写 if(指针)来检查指针是否为非 NULL。但是,为了清晰和一致,建议适当使用显式的 if (pointer != NULL) 或 if (pointer) 构造。
以上是`if (pointer)` 足以检查 C 中指针的有效性吗?的详细内容。更多信息请关注PHP中文网其他相关文章!