为了账号安全,请及时绑定邮箱和手机立即绑定

为什么运行结果是100 102 101 101 101 100

#include <stdio.h>

int main()

{

int a=100;

printf("%d\n",a++);

printf("%d\n",++a);

printf("%d\n",--a);

printf("%d\n",a--);

printf("%d\n",a+1);

printf("%d\n",a);

}


正在回答

4 回答

int a=8;

a++:先使用变量a(a=8),再做自增运算+1(a=9);

++a:先做自增运算+1(a=9),再使用变量a(a=9);


eg:

int a=7;

int b=a++ + ++a;//b=7+9

printf("%d %d\n",a,b);//9,16

int c=++a + a++;//c=10+10

printf("%d %d",a,c);//11,20


又是....你

0 回复 有任何疑惑可以回复我~
#1

外太空 提问者

非常感谢!
2016-06-27 回复 有任何疑惑可以回复我~
#2

外太空 提问者

还是没懂!a++和++a不都是要加1吗!为什么输出第一个a++时会是100呢?#include <stdio.h> int main() { int a=100; printf("%d\n",a++);
2016-06-27 回复 有任何疑惑可以回复我~
#3

外太空 提问者 回复 外太空 提问者

还是没懂!a++和++a不都是要加1吗!为什么输出第一个a++时会是100呢?#include <stdio.h> int main() { int a=100; printf("%d\n",a++);
2016-06-27 回复 有任何疑惑可以回复我~
#4

外太空 提问者 回复 外太空 提问者

还是没懂!a++和++a不都是要加1吗!为什么输出第一个a++时会是100呢?#include <stdio.h> int main() { int a=100; printf("%d\n",a++);
2016-06-27 回复 有任何疑惑可以回复我~
#5

LinkLink 回复 外太空 提问者

先使用a(也就是先打在屏幕上出来),再自增1.
2016-06-27 回复 有任何疑惑可以回复我~
#6

LinkLink 回复 LinkLink

a++就是,先使用a(也就是先打在屏幕上出来),再自增1.
2016-06-27 回复 有任何疑惑可以回复我~
#7

慕娘9403274

eg中最后一个a的值不应该是10吗,为什么是11?
2016-07-18 回复 有任何疑惑可以回复我~
查看4条回复

    printf("%d\n",a++);    //先输出100 再自增,a=101,但输出值是100

    printf("%d\n",++a);    //上一行的a=101,先自增1变成102,然后输出就是102

    printf("%d\n",--a);    //上一行的a=102,先自减1变成101,然后输出为101

    printf("%d\n",a--);    //上一行的a=101,先输出101,自减1以后a=100

    printf("%d\n",a+1);    //上一行a=100,进行运算a+1=100+1=101=输出值

3 回复 有任何疑惑可以回复我~
#1

鸢尾涵

还这样叠这算?
2016-08-07 回复 有任何疑惑可以回复我~

#include <stdio.h>

int main()

{

int a=100;                        //初始值是100

printf("%d\n",a++);      //输出是100,a的值变成了101(因a++是先输出,后运算)

printf("%d\n",++a);        //输出是102,a的值变成了102(因++a是先运算,后输出)

printf("%d\n",--a);        //输出是101,a的值变成了101(原因同上)

printf("%d\n",a--);       //输出是101,a的值变成了100 (原因同a++)

printf("%d\n",a+1);     //输出的值是101,a的值没有改变,a是100(因要求输出的值是a+1=100+1=101,但是a并没有自增)

printf("%d\n",a);         //输出的值是100,a的值也是100

}


4 回复 有任何疑惑可以回复我~
#1

外太空 提问者

谢谢了,弄懂了,嘿嘿
2016-06-27 回复 有任何疑惑可以回复我~
#2

鹿小闲

我也懂了,谢谢你!
2016-06-28 回复 有任何疑惑可以回复我~
#3

鸢尾涵

我还是没懂 不是说a=100后面就算自增那也应该是101为什么是102
2016-08-07 回复 有任何疑惑可以回复我~

第四行 a=100

第五行 a先输出再自加 输出是100,a=101

第六行 a先自加再输出 输出是102,a=102

第七行 a先自减再输出 输出是101,a=101

第八行 a先输出再自减 输出是101,a=100

第九行 a加1再输出 输出是101,a=100

第十行 a直接输出 输出是100,a=100

5 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么运行结果是100 102 101 101 101 100

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信