printf(%d\n",a+1)不改变原来的值

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

浅忆影流年

2015-10-24 21:08

http://img.mukewang.com/562b8367000133c704060208.jpg

http://img.mukewang.com/562b8394000121a000990171.jpg

http://img.mukewang.com/562b82710001887806820226.jpg

#include

int main()

 {    int x = 101;    

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

return 0; }

 运行结果为102 为什么?

写回答 关注

3回答

  • onemoo
    2015-10-25 11:54:32
    已采纳

    前一句打印时a的值是101,a--的值也是101,那句执行过后,a的值就自减为100了。

    然后在这一句就是打印a+1=100+1=101,这句就是单纯的一个加法,不会改变a本身的值啊。


    也许你有些概念没有厘清,详细解答请看这里我的回答 http://www.imooc.com/qadetail/83948

    浅忆影流年

    非常感谢!

    2015-10-25 12:03:07

    共 1 条回复 >

  • Soulike
    2015-10-24 22:04:52

    题主,你是没分清楚a++与++a的区别么?注释的上一行代码执行完后a的值是100啊

    浅忆影流年

    你确定是100?我都给了 运行结果 是101了

    2015-10-24 22:09:39

    共 1 条回复 >

  • 兰花石上彩虹天
    2015-10-24 21:27:36

    printf(“%d\n",a+1);输出的是a+1的值,不是a;

    a=a+1;

    printf("%d\n",a);此时才会被改变。


    浅忆影流年

    执行printf(“%d\n",a+1)语句之前a的值不是101吗?照你说的输出a+1不应该是102吗?

    2015-10-24 21:40:13

    共 1 条回复 >

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题