c - 三元算子交互的多个部分
问题描述
这打印4
。为什么?
我知道三元运算符是如何工作的,但这使它变得复杂。
printf("%d", 0 ? 1 ? 2 : 3 : 4 );
这也打印出来d
。???
int x=0, y=1 ;
printf( "d", x ? y ? x : y : x ) ;
解决方案
对于第一个,它是一个“嵌套”三元运算符。我会在它周围加上括号以使其更易于解码。考虑一下0 ? 1 ? 2 : 3 : 4
,让我们将其转换0 ? (1 ? 2 : 3) : (4)
为0
?else 部分执行的是4
对于第二个你错过了%d
推荐阅读
- javascript - 如何根据用户选择的深度折叠 D3JS 树?
- python - 我如何检查 Django 中存在的用户名和邮件
- css - 缩放引导卡而不影响连续的下一张卡
- javascript - Angularjs分页页码样式
- node.js - 设置在 Docker 中运行的节点调试
- google-apps-script - 将数据源动态绑定到应用程序制造商弹出窗口
- python - 机器人框架 - 如何从 pabot.PabotLib 库开始?
- html - 在 h1 块中的 2 个跨度项目上向右浮动
- python - Python - 根据结尾列表删除单词的结尾
- javascript - 删除函数并使其停止运行