int a=2;a+=a-=-a*a++; a为多少?谢谢
3个回答
展开全部
int a=2;
a+=a-=-a*a++;
相当于
int a=2;
a+=a-=-a*a;
a++;
好了,我们来算a+=a-=-a*a;
他又相当于:
a-=-a*a;
a+=a;
又相当于:
a=a-(-a*a);
a=a+a;
再结合之前的a++;
整个a+=a-=-a*a++;
就相当于:
a=a-(-a*a);//a原来值为2,运算完之后 a=2-(-2*2)=6
a=a+a;//a的值已经变成6,运算完之后 a=6+6=12;
a++;//a变成12,再自增1,所以运算完之后 a=13
所以最后a的值是13
a+=a-=-a*a++;
相当于
int a=2;
a+=a-=-a*a;
a++;
好了,我们来算a+=a-=-a*a;
他又相当于:
a-=-a*a;
a+=a;
又相当于:
a=a-(-a*a);
a=a+a;
再结合之前的a++;
整个a+=a-=-a*a++;
就相当于:
a=a-(-a*a);//a原来值为2,运算完之后 a=2-(-2*2)=6
a=a+a;//a的值已经变成6,运算完之后 a=6+6=12;
a++;//a变成12,再自增1,所以运算完之后 a=13
所以最后a的值是13
更多追问追答
追问
你好,int a=2;a =a-=-a*为什么最后才自增啊,我是这样想的,计算-a*a 这一步时a 为2,此时a自增为3则结果是-6,…最后a为18,是我理解错了吗?
追答
嗯,你理解错了,++在前就先自增,在后就先用再自增。
肯定是13,我刚才还在VS2010上验证过
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询