问答详情
源自:3-3 自增与自减运算符

有点不理解例题,

a应该是一个定值,那输出的结果应该是101,101,99,99,101,100,为什么例题的结果是100,102,101,101,101,100

提问者:dw1958 2015-11-28 10:40

个回答

  • onemoo
    2015-11-28 22:50:03

    请看这里我的回答 http://www.imooc.com/qadetail/83948

  • 半暖微凉
    2015-11-28 19:49:36

    我表达有错误,不应该是a变为了多少多少,a一直是一个定值100。应该说自家自减之后结果分别变为了100,101,102,101,101,100。结合我上面说的,希望可以看懂,哈哈。

  • 半暖微凉
    2015-11-28 19:44:13

    a++ 是执行完printf 再执行自加,所以第一个a++ printf为100;第一步执行完了之后a自加,变成了101;

    ++a是a自加之后printf,所以101自加1之后a=102输出;

    同理,--a是printf之前a自减,所以a=102-1=101,然后printf a;

    a--是在输出后自减1,所以此a还是为101 输出;

    a--输出后a变为100,再执行a+1,此时a=101;

    最后输出a为100。