C语言 表达式4>10? 5>3?4:3:(6,7)的值。

表达式4>10? 5>3?4:3:(6,7)的值。 要过程 这里同时出现2个问号表达式该怎么做 详细点哈 谢谢了

只要添加恰当的括号,就很显而易见了。
(4>10)?(5>3?4:3):(6,7)
4>10显然为假,条件表达式值为后部,即(6,7),这又是一个逗号表达式,值为最后一个元素,即7。
所以,表达式的最后值为7。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-31
条件表达式优先级是右向左,那么上面等式就相当于:
结果=(5>3?4:3)
4>10? 结果:(6,7)
第一个表达式由于5>3为真 所以结果为 4
那么第二个表达式就是
4>10? 4:(6,7)
4>10为假 那么结果应该等于(6,7)
逗号也是表达式,那么最后结果应该是7
第2个回答  2019-05-05
第一个>是左结合的,所以先算左面,4>3结果是1,以此论推
第二个结果不受结合方向影响,因为优先级上()高于%高于
+,结果是1,非要看次序的话是先
s%2,再(s+1)%2,因为+左结合
第3个回答  2010-12-31
事实上应该写成
4>10 ? ( 5>3 ? 4:3 ) : (6,7)
更好理解
4>10的值为假,故整个表达式取逗号表达式(6,7)的值
而逗号表达式仅最后一个表达式“7"作为整个逗号表达式的值,
故答案是7
第4个回答  2010-12-31
条件表达式格式: a?b:c
若a成立,表达式的值为b的值,否则为c的值。
4>10? 5>3?4:3:(6,7)相当于(4>10)?( 5>3?4:3):(6,7)
即把4>10当成a,(5>3?4:3)当成b,(6,7)当成c
因4>10不成立,整个表达式的值为(6,7)的值,即(6,7)逗号表达式的值为7,也就是结果的值。
相似回答