表达式: a> b? a: c> d? a: d的结果为4。

如题所述

表达式:a>b?a:c>d?a:d的结果为4。

解析:

1、由于C语言的相同优先级运算符运算规则为从左至右依次运算,而条件运算符具有右结合性,所以表达式:a>b?a:c>d?a:d优先运算c>d?a:d,得出的结果为4;

2、再运输a>b?a:4,得出的结果为4。

所以最终得出的结果为4。

扩展资料

表达式为:表达式1?表达式2:表达式3

先求解表达式1,

若其值为真(非0)则将表达式2的值作为整个表达式的取值,

否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。

例如:

1、max=(a>b)?a:b,就是将a和b二者中较大的一个赋给max。

2、min=(a<b)?a:b,就是将a和b二者中较小的一个赋给min。

条件运算符具有右结合性

当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。

例如:

w<x ? x+w : x<y ? x : y,与 w<x ? x+w : ( x<y ? x : y) 等价,与 (w<x ? x+w : x<y) ? x : y 不等价。

参考资料:百度百科-C语言运算符

参考资料:百度百科-条件运算符

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜