F河 发表于 2014-4-30 09:27:16

printf输出自增自减

#include<stdio.h>
#include<stdlib.h>
int main()
{
        int i;
        i=3;
        printf("%d\t%d\t%d\t%d\n",++i,--i,i--,i++);
        system("pause");
        return 0;
}为何答案为3 2 3 3
而不是3 2 4 3

sidfate 发表于 2014-4-30 12:24:34

编译器不同结果不同,具体可以通过调试的方法查看代码执行过程

秦晓彬 发表于 2014-5-7 12:28:46

i=3
++i使i自加且自身的值为i的原值
i++ 使i自加且自身的值为i+1
感觉不大对,
给你一个建议,想要弄清楚到底是怎么回事,可以 ,分开输出在输出之前,先初始化一下i的值

秦晓彬 发表于 2014-5-7 12:36:08

秦晓彬 发表于 2014-5-7 12:28 static/image/common/back.gif
i=3
++i使i自加且自身的值为i的原值
i++ 使i自加且自身的值为i+1


#include<stdio.h>
#include<stdlib.h>
int main()
{
      int i;
      i=3;
      printf("%d\t%d\t%d\t%d\n",++i,--i,i--,i++);
                i=3;
                printf("\n%d\n" ,++i);
                i=3;
                printf("%d\n" ,--i);
                i=3;
                printf("%d\n" ,i--);
                i=3;
                printf("%d\n" ,i++);
                system("pause > nul");
      return 0;
}

出现了问题;
前面我写反了,为什么第一个输出的不是4,而是3呢
页: [1]
查看完整版本: printf输出自增自减