c语言中的括号表达式

2024-12-17 09:33:26
推荐回答(4个)
回答1:

括号表达式计算顺序是从左到右,然后整个表达式返回的是最右边表达式的值,如第一个表达式,先算最内层的括号表达式的最左边的值,再把其最右边的值返回并赋值给b,所以b在此次运算之后变为3,之后b+2=5(但5只是一个临时值,b值还是3),之后15+b=18,并且这个值由于是最右的表达式会作为整个大括号表达式的返回值,即b再一次被赋值为18,然后现计算b+=18得到36;
如此第二个就是-30吧,对了,赋值表达式是从右到左赋值的

回答2:

这是逗号表达式,没有括号表达式。。
((b=(2,3),b+2),15+b) 从左往右一次执行语句,以逗号作为分界,最后返回最后一个语句的值

所以 b=3 最后返回15+b =18 b=18 b=b+b =36

b+=b-=((b=(2,3),b+2),15+b)

赋值且运算是右结合 b=3 b-=18 b=-15 b+=b b=-30

回答3:

请问这样的代码有什面意义?研究这样的东西和孔乙己研究茴香豆的茴字多少种写法有什么区别?编程注重的是思想和逻辑,代码需要的是表达清晰,简洁明了。可能说的有点过,希望不要介意。

回答4:

我理解错了