int a=9 b=5 b=(a=4)/(b=a) 为什么最后算出来的答案是1?

来源:百度知道 编辑:UC知道 时间:2024/05/18 03:42:49

a=4这是一个表达式,b=a这个也是
你的b=(a=4)/(b=a)实际上是这2个表达式的值相除。
而这2个表达式,如果赋值操作都成功的话,值就为真,也就是1
所以最后结果是1

b=(a=4)/(b=a) 中
a=4)和(b=a)都是赋值运算,他们的值都等于1,所以b的值是1

主要是搞明白各运算符的优先级就行了,括号最高,然后是除法,最后是赋值。先算a=4,又把a赋值给b,再算a/b,结果值为1又赋给了b。搞明白运算符的优先级对读程序是很必要的。

呃。。。误导太严重了
赋值操作的返回值就是所赋的值
二楼和三楼
试试
int i;
while ((i=2)-1);吧

b=4/4=1
和具体编译器有关(求值顺序)