作业帮 > 综合 > 作业

int x=6; x += x -= x * x; printf("x = %d\n",x);

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/01 08:03:29
int x=6; x += x -= x * x; printf("x = %d\n",x);
int x=6; x += x -= x * x; printf(
int x=6;
x +=( x -= x * x);
等价于:
x=(x+=(6-(6*6)))=(x+=-30)=-60;
再问: ( x -= x * x)为什么是同时赋值6
再答: 因为有个等号,所以需要先保存x=6,再计算x*x,然后计算x-=36,而这时会改变x的值,所以x+=中不会直接保存x=6而是等(6-(6*6))计算完才计算x+=result; 换句话是说: ①(x-=x*x)等价于:tmp1=x;tmp2=x*x; x=tmp1-tmp2; ②(x+=result)等价于:tmp1=x; tmp2=result=x; x=tmp1+tmp2=2*tmp1=2*x;