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

老师,请问一下

先运算和先取值有啥区别啊?还是不明白?

提问者:zq缘来如此 2015-02-04 20:52

个回答

  • linkin55
    2015-04-07 09:01:35

    “++的运算”:取值+1

  • onemoo
    2015-02-04 23:29:11

    假如有下面代码:

    int a = 1;
    printf("%d\n", a++); // 输出1
    printf("%d\n", a); // 输出2

    第一个printf要打印出a++的值。所谓先取值再运算是指:a++的值就是a当时的值(即把a的值取出来),在之后a会自增1。 所以a++的值就是1,而在这个语句结束后a的值就自增1,变成2了,所以第二个printf输出2。


    如果后两句是这样:

    printf("%d\n", ++a); // 输出2
    printf("%d\n", a); // 还是输出2

    同样第一个printf要打印++a的值。所谓先运算再取值是值:++a的值是先将a自增1,再取这个结果。所以++a的值是a+1 = 2。第一个printf就打印出2了。而这之后a的值还是2。