【发布时间】:2016-04-17 16:49:26
【问题描述】:
以下哪种方法是更正确的初始化变量的方法?
int x = 0;
int x = NULL;
指针呢?有人告诉我关于NULL 的一些不和谐的事情,比如:“NULL 最适合初始化指针”或“不要使用NULL,而是使用 0 来初始化变量”等等……现在,我继续阅读NULL 等于 0 的互联网,我自己测试过。那么有什么意义呢?为什么有些人说使用 NULL 不是一个好的选择?有什么我遗漏的吗?
【问题讨论】:
-
NULL不等于0。 -
@iharob 你说
if ( 0 == NULL )不是真的? -
我说的不是这个,不一定是
0。 -
@wallyk: Yes true - N1570, 6.3.2.3/3 和脚注 66。空指针 constant(定义为
NULL)总是零值。翻译后,对应的空指针value可能是零值,也可能不是零值。 -
@ClaudioCortese:来自 C 标准 (C11 n1570):“参数应为指向 void 的指针。指针的值被转换为打印字符序列,在实现中-定义的方式。” (强调我的)。仅供参考:
NIL表示“不在列表中”。对于像 LISP(“ListProcessing”)这样的基于列表的语言,名称会立即变得清晰。请注意,这些库可能不仅被 C 或 C++ 语言使用,而且还被例如 C 或 C++ 语言使用。通过 Pascal 程序。一些库可能只打印值,例如0x0,其他例如(null)。 AFAIK none 打印大写NULL- 可能有充分的理由。
标签: c variables pointers initialization null-pointer