如题所述
赋值运算符是自右向左结合的。
以如下代码为例:
int
a
=
1,b=2,c=3;
a=b=c;
printf("%d,%d,%d\n",
a,b,c);
如果赋值运算为自左向右,那么执行顺序为
a
=
b
=
2;
b
=
c
=
3;
结果a
=
2,
b=3,
c
=
3。
将输出2,3,3
如果赋值运算为自右向左,那么执行顺序为
b
=
c
=
3;
a
=
b
=
3;
结果a
=
3,
b=3,
c
=
3。
将输出3,3,3
通过实际运行,结果为3,3,3。说明结合方向是自右向左的。
以如下代码为例:
int
a
=
1,b=2,c=3;
a=b=c;
printf("%d,%d,%d\n",
a,b,c);
如果赋值运算为自左向右,那么执行顺序为
a
=
b
=
2;
b
=
c
=
3;
结果a
=
2,
b=3,
c
=
3。
将输出2,3,3
如果赋值运算为自右向左,那么执行顺序为
b
=
c
=
3;
a
=
b
=
3;
结果a
=
3,
b=3,
c
=
3。
将输出3,3,3
通过实际运行,结果为3,3,3。说明结合方向是自右向左的。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-09-24
a>b?(a-1):(8)
这个式子会先从右边算,最后比较输出追问
这个式子会先从右边算,最后比较输出追问
不管先从哪边算 结果不是一样吗
追答。。。
不是只有这一种方式,
他就这么规定的你,不要问为什么,要问你问 D.M.Ritchie