C语言中 int a=9,b=5; 那么表达式b=(a=4)/(b=a)的值为什么是1?

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:36:34

int a=9,b=5 这句是给a,b赋初值

b=(a=4)/(b=a) 在这句中a=4是给a重新赋值了,此时a=4,所以b=a=4
b=(a=4)/(b=a)=(a=4)/(b=4)=4/4=1

b=(a=4)/(b=a);
1,把4赋值给a; a=4
2;把a赋值给b b=a
3.相除 结果就时1了 其实不管a是多少(0除外) 结果都是1

这个实际上是b=a/a,根他们具体的值是多少没关系

a=4这个式子的值是4
b=a这个式子的值是b,即赋过a值后的b,也为4
4/4=1

我想b=(a=4)/(b=a)这个执行顺序应该是
先执行(a=4),a=4;
再执行(b=a),那么b=4;
再执行除法,4/4 =1
不知道对不对。。
再就是,/ 是整除

把表达式分解开:
a=4;
b=a;
b=a/b;
1.变量为整型,故为整除 如 i=3/2时,i的也为1
2.优先运算括号