首页 > 解决方案 > 三元算子交互的多个部分

问题描述

这打印4。为什么?

我知道三元运算符是如何工作的,但这使它变得复杂。

printf("%d", 0 ? 1 ? 2 : 3 : 4 );

这也打印出来d。???

int x=0, y=1 ;
printf( "d", x ? y ? x : y : x ) ;

标签: cternary-operator

解决方案


对于第一个,它是一个“嵌套”三元运算符。我会在它周围加上括号以使其更易于解码。考虑一下0 ? 1 ? 2 : 3 : 4,让我们将其转换0 ? (1 ? 2 : 3) : (4)0?else 部分执行的是4

对于第二个你错过了%d


推荐阅读