C语言,求高手

如题所述

第1个回答  2019-06-11
因为条件运算符具有右结合性,所以所求与
max=
a>b?1:(2<3?(a=3):2)等价,先计算后边的条件运算符,所求即为
max=a>b?1:(a=3),此时a还没有等于3,因为
条件运算符优先级要高于赋值运算符,
题中所知a=1,b=2,故结果max=(a=3)。
第2个回答  2020-01-27
首先:a=1,b=2
max=(如果a>b则获取问号后面的内容,否则的话获取冒号后面的内容,a不大于b,则获取第二个表达式,2小于3,成立!获取(a=3),那么就间接的max等于a了,而a现在等于3赋值给MAX就等于3了。
第3个回答  2019-02-06
因为表达式:max=a>b?1:2<3?(a=3):2;首先判断a(1)是否大于b(2),程序发现(a>b)的判断结果为假,于是不能把1赋值到max,进入表达式:2<3?(a=3):2;取值!这个表达式判断了2<3,结果为真,于是把a赋值为3,并取出3这个值赋值给max.所以...
相似回答