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

++与--的困惑

#include <stdio.h>

int main()

{

    int i=4;

    printf("%d,%d",++i,i++);

    return 0;

}

输出为6,4


#include <stdio.h>

int main()

{

    int i=4;

    printf("%d,%d",++i,i);

    return 0;

}

输出为5,5



#include <stdio.h>

int main()

{

    int i=4;

    printf("%d,%d",++i,i--);

    return 0;

}

输出为4,4


谁能告诉我这些是怎么运算出来的?


提问者:学长就是帅 2015-04-13 11:43

个回答

  • onemoo
    2015-04-14 10:57:15
    已采纳

    想知道为什么出这样的结果就去看汇编,gcc -S 或 objdump -d。

    不过初学阶段你完全不用考虑这么多。就像LS说的,这个完全是C标准未定义的行为,不同的平台可能有不同的结果。

  • 学长就是帅
    2015-04-14 18:21:55

    。。。。谢谢,那我还是先把这个放下吧。

  • 学长就是帅
    2015-04-13 18:23:11

    。。。。。。我就是纯粹好奇,个人兴趣,学C语言不搞彻底总感觉不舒服。但还是谢谢你。

  • 慕瓜4019319
    2015-04-13 12:07:35

    这种问题是不需要理解的。(这是undefined,和编译器实现相关的)

    如果你们老师考这种问题,你就直接写上错误答案就行了。