如果(a)或if(a!= NULL)哪个更好

时间:2012-01-16 15:39:42

标签: c++

如果a是一个指针,测试if(a)和if(a!= NULL)之间是否存在差异?哪一个更好?

3 个答案:

答案 0 :(得分:5)

它是一样的,但第二个让你的意图更清晰。

如果您使用的是C ++ 11,则应使用nullptr,因为它不允许int x; if(x==nullptr){...}

答案 1 :(得分:3)

没有区别。使用哪个使您的代码对您自己和他人更具可读性。如果它变得冗长,或者上下文清楚,请随意省略显式NULL:

void * p = std::malloc(n);
if (!p) throw std::bad_alloc();

答案 2 :(得分:0)

你的编译器会为两者发出相同的代码,但是if(a)是一个完全正常的C语言,而这正是你的程序员期望看到的。