打印空指针时可以std::cout打印“ NULL ”而不是0吗?我可以写一个简单的 if 语句,例如
if(pointer == nullptr)
std::cout << "NULL";
Run Code Online (Sandbox Code Playgroud)
但是如果不使用 if 语句我能得到相同的结果吗?
您无法真正使用 if 语句进行转义,但您可以使用三元运算符将其变成单行:
(p == NULL ? std::cout << "NULL" : std::cout << p);
#include <iostream>
int main() {
void *p = NULL;
(p == NULL ? std::cout << "NULL" : std::cout << p);
std::cout << std::endl;
p = new int;
(p == NULL ? std::cout << "NULL" : std::cout << p);
std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)