昨天我在面试一个中级软件工程职位的人,他提到在C语言中,null并不总是为零,而且他见过null不为零的C实现.我觉得这很可疑,但我想确认一下.有人知道他是对的吗?

(回复不会影响我对这位候选人的判断,我已经将我的决定提交给了我的经理.)

推荐答案

我猜你指的是空指针.它保证相当于01但它不必用所有零位来表示2

另请参见空指针上的comp.lang.c FAQ.


  1. 参见C99,6.3.2.3.
  2. 没有明确的要求;但请参见C99的脚注7.20.3(感谢 comments 中的@Birryrree).

C++相关问答推荐

MISIX标准和信号量的语义

如何从TPS特定的TGPT_PUBLIC数据 struct 中以OpenSSL的EVP_PKEY

位屏蔽对于无符号转换是强制的吗?

两个连续的语句是否按顺序排列?

Clang:如何强制运行时错误的崩溃/异常由于-fsanitize=undefined

Sizeof(&Q;字符串&Q;)的正确输出是什么?

使用错误的命令执行程序

理解C版宏(看起来像未声明的变量?)

C中的FREE函数正在触发断点

使用TCL C API导航到列表中的元素

如何将另一个数组添加到集合中,特别是字符串?

如何在C-函数中混合使用C代码和ASM?

处理来自浏览器的HTTP请求

如何在C++中安全地进行浮点运算

条件跳转或移动取决于未初始化值(S)/未初始化值由堆分配创建(Realloc)

具有正确标头的C struct 定义问题

通过char*访问指针的对象表示是未定义的行为吗?

GCC认为这是一个VLA是对的吗?

指向返回 struct 成员的指针,安全吗?

通过修改c中的合并排序对数组的偶数索引进行排序