y+=y-=m*=y,int m=5,y=2,表达式执行完了y等于多少呢
来源:百度知道 编辑:UC知道 时间:2024/05/14 19:40:32
那么算出来-16的啊....
-16
整个表达式等价于
y+=(y-=(m*=y));
但是如果你的表达式就像上面那么写,会通不过编译。
得写成
int m=5, y=2;
y+=y-=m*=y;
才行。
写成这样还不明白的话:
先看m*=y;这个表达式的意义是m=m*y;就是用m乘以y结果送给m。
之后m=10,y=2.而整个表达式的值就是右值,也就是10。
接下来,就是y-=10了(看最上面的表达式),这个表达式等于y=y-10.
所以这时候y=-8,
最后y+=-8;等价于y=y-8;所以最后y=-16咯。
以后遇到这种问题就从右往左看,因为赋值语句都是右结合的。拆成一个个嵌套的表达式,表达式的值就是右值。
无法确定
-6?
int y=10; do{y--;} while(--y); printf("%d\n",y--);
x,y 都是int, x++=y++ 为什么错?
int x,y;x=3.y=4.y=(x++,++x,x+y,x++).x=?,y=?
设int y;执行表达式(y=4)||(y=5)||(y=6)后,y的值是______
|y|-y=4?
已知 int a=1,y=3;执行y=9-(--y)-(--y)后,为什么x=7?
4-y×y×(y-3)=0 y=?
java int x,y=5;x=++y;if (x==y) x*=2; if (x>y) x++; else x=y-1
x-y=m求(3x-3y)^3
int x,y,i=10;x=i++;y=i;执行后x,y的值是多少?