C语言中的“右结合”是什么意思?
举个例子
a=b+c+d
=是右结合的,所以先计算(b+c+d),然后再赋值给a
+是左结合的,所以先计算(b+c),然后再计算(b+c)+d
C语言中具有右结合性的运算符包括所在单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性。
扩展资料:
c语言中的左结合右结合
a<b<c中的<是左结合的,也就是从左向右计算的,所以23<59<2的值为1,而23<59<0的值为0;
但是=是右结合的,如果一个表达式中出现多个=号,不是从左到右计算而是从右到左计算,例如 total=total_minute=hour*60+minute,计算的顺序是先算hour*60+minute,得到一个结果,然后算右边的等号,就是把计算结果赋给变量total_minute,在算左边的等号,即把这个值赋给变量total。
1、结合性是批在C语言运算符中,如果几个运算符具有相同的优先级时决定先执行哪一个。
2、右结合性,就是在表达式中最右边的操作最先执行,然后从右到左依次执行。比如下面这个表达式:
int a,b=1,c=2;
a=b=c;
是先执行b=c呢?还是先执行a=b。如果按前者,a=结果为2,如果按后者,a的结果为1。这时候结合性的作用就来啦。所有的赋值符(包括复合赋值)都具有右结合性,就是在表达式中最右边的操作最先执行,然后从右到左依次执行。所以,最后a的值为2。
比如说 a+b+c
如果左结合就是(a+b)+c
如果右结合就是a+(b+c)
不过不要去使用这种结合
使用括号
将自己所有的运算用括号一步一步的括起来
别人看起来容易
这个是个良好的编程规范
!a&b++*c+d--
上面这个式子估计也就只有考试里能出现