作为comp.lang.cFAQ说,有些架构中的空指针并非全为零。所以问题是实际检查以下构造:void*p=get_some_pointer();if(!p)return;我是将p与机器相关的空指针进行比较,还是将p与算术零进行比较?我应该写吗void*p=get_some_pointer();if(NULL==p)return;而不是为这样的架构做好准备,还是只是我的偏执狂? 最佳答案 根据C规范:Anintegerconstantexpressionwiththevalue0,orsuchanexpressioncasttoty