关于c 语言 x+=x-=x*(y=5)

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:23:49
#include "stdio.h"
main()
{
int x,y,z;
x=y=z=8;
printf("x=%d,y=%d,z=%d\n",x,y,z);
x=(y=12)*(z=8);
printf("x=%d,y=%d,z=%d\n",x,y,z);
x+=x-=x*(y=5); /*这里不明白*/
printf("x=%d,y=%d,z=%d\n",x,y,x);
return 0;
}
这里的x+ 和x- 是什么意思,z 为什么不在,却又能输出数据呢
可以教下我吗? 谢谢了

x+=x-=x*(y=5)
等于x=x+[x-x*(y=5)]
z的数据是用的X的 你最后是把X的值拿给Z输出
printf("x=%d,y=%d,z=%d\n",x,y,x); 此的Z是X的值

楼上解释的不对哦

要看优先级,"*"优先级高于“+,-”所以,先执行 x-=x*(y=5)

x-=x*(y=5)的意思是x-=x*1,因为赋值y=5并返回真,所以最后结果是x的值

z和x都输出了x的值

x+,x-的意思是,假如x+=1,这个式子,等同于,x=x+1

冬瓜的解释是对的。y=5的值还是5(虽然5在C里面也是真)。而且应该说*双目运算符的优先级高于-=和+=。这里的+=和-=是运算符而不是+和=