c语言刚学有一浅显问题不明,请高手帮忙。

来源:百度知道 编辑:UC知道 时间:2024/06/21 06:09:29
x=a=3+4,b=a*2与x=(a=3+4,b=a*2)这两个表达式有区别吗?x变量的值相同吗?若将a=3+4,b=a*2变为b=a*2,a=3+4对吗?请分析之。谢谢!
谢谢哦,前两个我知道,可第三个问题,如果两个式子掉换的话也就是x=b=a*2,a=3+4与x=(b=a*2,a=3+4)这时候前一个式子x的值就是14,后一个变成x=7,应该是颠倒了吧?

a=3+4,b=a*2变为b=a*2,a=3+4;
这是有区别的,逗号运算符,返回值为最后一个表达式
a=3+4,b=a*2 返回值为 b 即 14
b=a*2,a=3+4 返回值为 a 即 7

赋值运算符符合右结合律,其中 比较运算符 优先级 高于 赋值运算符
赋值运算符优先级高于 逗号运算符。

当然有区别的
X是不一样的,X应该是7和14
”若将a=3+4,b=a*2变为b=a*2,a=3+4“这样怎么变都行的啊
不会错的,可得根据实际问题去确定怎么变了