c++ - Can std::cout print "NULL" instead of 0 when printing a null pointer?
问题描述
Can std::cout
print "NULL" instead of 0 when printing a null pointer?? I can write a simple if statement like
if(pointer == nullptr)
std::cout << "NULL";
But can I get the same result without using an if statement?
解决方案
使用 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;
}
推荐阅读
- angular - [Angular 10][Rxjs] 为什么第二个管道没有触发
- python - 我在 Power BI 中使用 Python 脚本。如何格式化多个 seaborn 'displot' 的 x 轴刻度标签和标题
- python - Python字典和文本文件的交集
- javascript - 如何使用正则表达式验证此类输入?
- transactions - 我的后端可以调用智能合约函数在某个日期执行吗?
- ansible - 我已经使用寄存器变量来存储任务的输出值,所以我在来自 ansible 角色的条件下使用相同的值
- vue.js - 异步加载 Vue 插件
- pandas - 当元组是字典的值时仅检索元组的一个元素
- progressive-web-apps - 将上传文件的路径存储在客户端或浏览器外部的文件以供离线使用
- java - 应用操作正在使用 AATP(应用操作测试工具),但不能从谷歌助手工作