求解(求姐)

来源:3-3 自增与自减运算符

1212520

2017-03-07 20:51

为什么左边例题中的  printf("%d、n",a);  中a的值不受上面的影响啊啊啊啊

写回答 关注

4回答

  • 慕粉1751577510
    2017-03-07 21:15:05
    已采纳

    受影响了呢,你注意到没,a一共被赋值5次,进行了4次运算,流程是这样的

    int a=100; //这条给a赋值100;

    printf("%d\n", a++); //在这条语句a先取值再运算,于是会先取a的值100输出,然后再进行运算,这条语句执行完后a=100+1=101;

    printf("%d\n", ++a);//在这条语句a运算以后再取值,也就是先进行a=a+1=101+1=102,再将运算过后的a的值进行输出,即102(这时a的值已经为102了);

    printf("%d\n", --a);//这条语句同上,也是a运算后再取值,先进行a=a-1=102-1=101,再将运算过后的a的值输出,即101(此时a的值已经变化为101了);

    printf("%d\n", a--);//这条语句的话是先取值再运算,也就是先将101这个值输出,输出后再对a进行运算,即a=a-1=101-1=100(运算过后a这时的值为100);

    printf("%d\n", a+1);//这一条语句是不会对a的值有影响的,只是输出结果会变为100+1即101,但是a的值还是100;

    printf("%d\n", a);//所以最后a的值为100;

    慕粉9354...

    赞。。

    2017-04-18 17:31:28

    共 2 条回复 >

  • qq_隐形人_6
    2017-05-23 00:07:47

    看其他解答一脸懵逼,看这茅塞顿开

  • itme_BJV
    2017-03-11 17:23:26

    上面的a++a--这些事有永祥的,只不过a+1只是暂时加1,就是那个语句是一个表达式,不是值,1+1以后等于2,那1还是1不是2,表达式a2=a1+1,a1加上去以后a2变了,所以是不一样的

  • qq_待我强大_0
    2017-03-07 20:56:25

    a没有声明赋值吗?

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926028 学习 · 20793 问题

查看课程

相似问题