int a=12 a+=a-=a*=a 为什么赋值表达式中a最后算出为0
来源:百度知道 编辑:UC知道 时间:2024/06/15 15:07:02
自右向左算,
化算如下:
a+=a-=a*=a
a+=a-=a=a*a
a+=a-=a=12*12
a+=a-=a=144
a+=a=a-a=144-144
a+=a=0
a=a+a=0+0=0
有a-,所以最后的值是0了。
因为中间会有一步是a-=a
a+=a-=a*=a:
a=a+(a=a-(a=a*a))
==a-a==0
这个式子是从右向左计算的
先算 a*=a 就是a=a*a=24
再算 a-=a 就是a=a-a=0
继续算 a+=a 就是a=a+a=0
C语言:int a=12; a+=a-=a*a 执行后..得到多少???...
void a(int a,int b=0)的含义?
unsigned int a=2;int b = -3;
java问题 int a[ ]=new int[5]是什么意思
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?
int *p=&a;和 int *p; *p=a;和 int *p; p=&a;有区别么?
fun1(int a,int b)
java中的数组赋值给数组问题int[ ] a=new int[10];int[ ] b=new int[8];
int a=b;与int a,b;a=b;的区别
C语言中 指针int *a=10;和int *a; *a=10;的区别