例题里面的答案不太能理解 我先分析一下我怎么想的

来源:3-3 自增与自减运算符

慕粉1435423470

2019-03-12 11:26

首先a=100,

第一个输出的是a++,这时候是先取值再赋值,所以输出是100(但是实际a值输出后变成了101);

第二个输出的是++a,这时候是先赋值再取值,所以输出的是102(也就是101+1=102,这时候a已经是102);

第三个输出的是--a,这时候和上面一样,输出101(也就是102-1=101,这时候a也就变成101了);

第四个输出的是a--,还是先取值再运算,所以输出的是101(但是实际值已经是100了)

然后第五个输出的是a+1,也就是101(100+1);

最后输出a的值100(转了一圈又回来了);

好吧本来我理解这个自增自减是有点问题的,结果自己打出来这么一分析感觉又能理解了。按我现在的理解这个a++,++a什么的其实是包含了

一个赋值的过程,前面的运算结果会影响后面的计算,是环环相扣的是吧,,,这样理解对吗?

写回答 关注

5回答

  • weixin_慕田峪0396689
    2019-04-15 16:39:21

    恍然大悟

  • 藤原码红
    2019-03-26 22:50:48

    看完你的说法我也终于理解了

  • qq_慕用8225582
    2019-03-23 20:54:50


    首先a=100,

    第一个输出的是a++,这时候是先取值再赋值,所以输出是100(但是实际a值输出后变成了101);

    第二个输出的是++a,这时候是先赋值再取值,所以输出的是102(也就是101+1=102,这时候a已经是102);

    第三个输出的是--a,这时候和上面一样,输出101(也就是102-1=101,这时候a也就变成101了);

    第四个输出的是a--,还是先取值再运算,所以输出的是101(但是实际值已经是100了)

    然后第五个输出的是a+1,也就是101(100+1);

    最后输出a的值100(转了一圈又回来了);




  • qq_慕函数6206282
    2019-03-20 10:49:47

    先赋值再取值++a 为什么输出是102  不是101吗  ,好就算这个算法对,但是下面--a不是按照这样算的吗?

    102赋值  101 取值 再-1  不应该是100吗?求大神解答  

    Smile是...

    a++就是为了下一次运算做准备的 比如a=1时 a++之后输出还是1 但下次运算++a时就是第一次的1+1也就是2了再加1 所以第二次运算就是3了 你记住a++或a--就是为下次做准备就行了 ++或--a则相反

    2019-06-13 15:54:11

    共 6 条回复 >

  • 慕婉清2155062
    2019-03-12 13:00:43

    dui


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926896 学习 · 21532 问题

查看课程

相似问题