c - 三元运算符使用问题

标签 c ternary-operator

我之前曾使用过三元运算符来处理像 if-else 这样的条件,但这里有所不同,即在 ? 之前不检查条件。

  printf( "%d\n",10?0?5:11:12 );

已编辑: 那么,由于我在第一个 之前没有看到任何条件,编译器将如何评估 11

最佳答案

表达式10 ? 0 ? 5 : 11 : 12解析如下:10 ? (0 ? 5 : 11) : 12 。所以这意味着在第一个测试中,由于 10 为真,因此它将评估 0 ? 5 : 11 ,其计算结果为 11,因为 0 为 false。

关于c - 三元运算符使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223832/

相关文章:

c# - C#三元运算符

c - 动态加载库 (DSO) 中的符号导入

c - 如果包含额外的头文件如何处理?

不使用数组将十进制转换为二进制

c - 为什么 Kernighan 和 Ritchie 不将 int 包含在 main 函数中?

javascript - 为什么三元运算符中的这个逗号会在 JavaScript 中引发语法错误?

vb.net - 漏洞??如果通过三元运算符将值赋给可为 null 的整数,则它不能变为 null

c - 给定一个单位数,正整数数组,转换为整数,乘以 2,返回一个新产品数组,数组中的每个数字

c++ - 您对这个 C++ 表达式有什么期望?

c# - 为什么我必须在 bool 检查中将三元运算符表达式放在括号中?