在条件语句中使用NULL和'\ 0'是一样的吗?

tem*_*nce 1 c++ null visual-studio-2013

C++中以下两个条件是否相同?他们都可以接受吗?我正在使用Visual Studio 2013 Express,我使用NULL.我的程序运行正常,但在我的作业等级上,它被计算在内,因为我使用的是NULL而不是'\ 0'.

 if (charArray[0] == NULL)
 if (charArray[0] == '\0')
Run Code Online (Sandbox Code Playgroud)

T.C*_*.C. 5

NULL是一个空指针常量.charArray[0]可能不是指针.因此,你不应该将它与之比较NULL.

C++标准说:

NULL是本国际标准(4.10)中实现定义的C++空指针常量.

允许的定义包括但不限于0,0L和,在C++ 11, nullptr.如果NULL被定义为nullptr您的程序甚至不会编译.

在现代C++中,你应该使用像0或者'\0'你想要零的文字,nullptr如果你想要空指针.NULL不应该真的使用.