第2个回答 2019-09-23
这题主要就是明白两个概念:
1、逗号表达式将多个子式联接起来,从左往右计算,整个逗号表达式的值为最后一个子式的值。
2、逗号表达式的运算优先级最低,一定是最后计算
明白这两个概念之后,再来看这个表达式y=(x*3, x+13), x*2
1、首先,括号的优先级最高,先算(x*3, x+13)
2、括号内部是一个逗号表达式,联接了两个子式x*3, x+13,值分别是15、18,所以逗号表达式的值为18,即括号表达式为18
3、然后计算赋值表达式y=(x*3, x+13),计算结果为y=18
4、最后,再计算一个逗号表达式y=(x*3, x+13),x*2,结果是18、10,逗号表达式的值为10
所以,最后y=18
第3个回答 2019-09-23
这是逗号表达式,注意的是在c语言中赋值也是表达式,这个式子被分解成两部分,y=x+5是第一部分,x+5的值赋值给y,y的值变为7,而x+y是第二部分,求了值没作用就丢掉了,所以y的值就是7,如果你这样写情况就不一样了:y=(x+5,x+y)逗号运算符的优先级低于赋值运算符