请教c语言的一个小问题

2025-01-17 18:18:37
推荐回答(4个)
回答1:

先执行3+4,此时i=7;然后执行5+6此时i=11
逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。

回答2:

逗号运算符最终值只取后面的那部分
但是会先计算前面的部分
在你这个例子里逗号运算符是没有意义的

i = (i=5,i+6);
这样的就有意义

回答3:

这里面涉及到一个运算符的优先级和结合性问题,小括号的优先级最高,所以先计算括号里面的内容,而逗号运算符的结合性是从左至右,先算3+4,再算5+6,然后是赋值运算符=,把5+6的计算结果赋值给变量i。逗号运算符在这里是起一个以从左至右的顺序计算各个表达式的作用。

回答4:

(3+4,5+6)是用逗号连接起来的表达式,逗号运算符的规则是从左到右计算各个表达式,中有左后一个表达式的结果作为总表达式的运算结果。也就是这里的5+6的结果赋给变量i。