二级C语言题目,看了答案还是不会,求详解。

如题所述

(a=4*5,a*2),a+6

这是一个逗号表达式,从左往右进行计算

计算逗号左边的表达式,它本身也是一个逗号表达式a=4*5,a*2,同样先计算左边的a=4*5,这是一个赋值表达式,计算结果为20,同时a=20,再计算a*2,结果为40(但这个不重要,这里不用它)

接下来,再计算a+6,结果为26

逗号表达式的最终结果,是整个逗号表达式中最后一个表达式的结果。因此,结果为26.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-16
需要先了解,(A,B)这种是逗号表达式,而且逗号表达式的返回值是最后一个逗号后面的表达式的值。所以(A,B)这种表达式的返回值是B.
那么这个题就是嵌套的逗号表达式,先看括号里的,赋值运算的优先级高于逗号表达式

所以a = 2*5; 所以a的值是20
括号内返回最后一个逗号后面的表达式的值,也就是a*2
那么算完括号内之后就是:
a*2, a+6.
然后还是返回最后一个表达式的值a+6,也就是20 +6了所以是26
第2个回答  2015-01-16
这个表达式是逗号表达式,逗号表达式的运算从左往右进行,即先运算(a = 4*5, a*2),而括号为一个逗号表达式,先计算a = 4*5 = 20,后计算a*2 = 40,之后计算a + 6 = 26,最后表达式的值为最后一个逗号之后表达式的值,故为26
第3个回答  2015-01-16
逗号运算符是自左向右的,所以括号里面的表达式a=20,a*2是40(但此时a还是20),然后a+6是26,所以整个表达式的结果是26
相似回答