在C语言中 int a,b; a=0; b=++a+a+++a+++a++; prinrf a,b; 通过上机得知,b=7 求告知,为什么b会等于7? 5
首先a自加,为1.++a与a++相加得22与第三个a++相加,得44于第四个a++相加,得8以上是我自己的解答过程,与电脑计算不符合。其中错误,望各位老师指正。...
首先a自加,为1.
++a 与 a++ 相加 得 2
2 与 第三个a++相加,得 4
4 于 第四个a++相加,得 8
以上是我自己的解答过程,与电脑计算不符合。其中错误,望各位老师指正。 展开
++a 与 a++ 相加 得 2
2 与 第三个a++相加,得 4
4 于 第四个a++相加,得 8
以上是我自己的解答过程,与电脑计算不符合。其中错误,望各位老师指正。 展开
展开全部
上式可改为:(++a)+(a++)+(a++)+(a++),一共四个a
第一个++a是a先自增一然后再做加法此时a=1,式子变成1+(a++)+(a++)+(a++),而a++表示先做加法再自增1;第二个a时,a=1先做加法,式子变成1+1+(a++)+(a++),然后a自增1此时a=2;第三个a时,同第二个a,式子变成1+1+2+(a++),此时a自增1变成3;第四个a时式子变成1+1+2+(3++)=4+(3++)=4+3=7,而a自增1变成4,。最后a=4,b=7。
此类题的关键解法是a++表示a先运算,然后再自增1;++a表示先自增1,再参与运算。
第一个++a是a先自增一然后再做加法此时a=1,式子变成1+(a++)+(a++)+(a++),而a++表示先做加法再自增1;第二个a时,a=1先做加法,式子变成1+1+(a++)+(a++),然后a自增1此时a=2;第三个a时,同第二个a,式子变成1+1+2+(a++),此时a自增1变成3;第四个a时式子变成1+1+2+(3++)=4+(3++)=4+3=7,而a自增1变成4,。最后a=4,b=7。
此类题的关键解法是a++表示a先运算,然后再自增1;++a表示先自增1,再参与运算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种问题在不同的编译器中可能会得到不同的答案,不建议你仔细扣这种特殊的语法,编程的时候也没有人会这么写。真正的高手写出的程序是优雅且易懂的,而不是有可能产生歧义的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第三个a++的值是3呀,
++a是a的值先自增,再参与运算
a++是a的值先参与运算,再自增
b=(1)1+1(2)+2(3)+3(4)
++a是a的值先自增,再参与运算
a++是a的值先参与运算,再自增
b=(1)1+1(2)+2(3)+3(4)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-29
展开全部
从左往右看b=(++0)+(1++)+(2++)+(3++)=1+1+2+3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询