std::cout 打印空指针时可以打印“NULL”而不是 0 吗?

Kae*_*xer 2 c++ pointers

打印空指针时可以std::cout打印“ NULL ”而不是0吗?我可以写一个简单的 if 语句,例如

if(pointer == nullptr)
  std::cout << "NULL";
Run Code Online (Sandbox Code Playgroud)

但是如果不使用 if 语句我能得到相同的结果吗?

Nic*_*eed 5

您无法真正使用 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)

演示