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上验证过
2013-01-18
展开全部
见谁这么写代码你就拿大嘴巴使劲抽他,抽到他知道拆语句和加括号为止。
追问
考试题,麻烦算一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先拆开表达式为 a = a+(a=(a-(-(a*a)++))=a+(a=7)=7+7=14
1、a=(a-(-(a*a)++))=(2-(-4++))=2-(-5)=7
2、a=a+a=7+7=14;
1、a=(a-(-(a*a)++))=(2-(-4++))=2-(-5)=7
2、a=a+a=7+7=14;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询