C语言中自增自减的简单问题

a=31.b=(++a)++(a++)b=?a=?2.b=(a++)+(++a)b=?a=?求详细的解答过程... a=3 1.b=(++a)++(a++) b=? a=?
2.b=(a++)+(++a) b=? a=?
求详细的解答过程
展开
 我来答
huafeiiii
2014-10-09
知道答主
回答量:11
采纳率:0%
帮助的人:5.7万
展开全部


第一题中间应该多了个加号,修改过后的运行结果如图。

然后第一题的++a是每一次都先加1,然后计算,而a++是计算完成之后才加一。

所以第一题其实是4+4=8;

第二题是3+5=8;

然后a都是加了2次,都是5.

才福901027
2014-10-09
知道答主
回答量:25
采纳率:0%
帮助的人:10万
展开全部
最简单的体现前自增和后自增,应该这样,令b=a++;c=++a;再把b,c的值输出,看有什么不同。事实上,区别是这样的。b=a++意思是b=a;a=a+1而c=++a意思是a先自加在把值赋给c即a=a+1;c=a;第一个++a的值为4,a也变成4,a++的值是4,a变成5,故第一问b=4+4=8,a=5.第二个a++的值为3,a变成4,++a的值变成5,a也是5,故第二个b=3+5=8,a=5。在编程时应尽量屏蔽掉前自增和后自增的差别,因为使用过多会造成读代码的难度,其实b=a++完全可以用b=a;a=a+1表示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
honglg_027
2014-10-09 · TA获得超过103个赞
知道答主
回答量:85
采纳率:100%
帮助的人:45.8万
展开全部
  1. b=(++a)++(a++) 该式属于非法操作

  2. b=(a++)+(++a)
    b=3+5=8, a=5

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式