请问一下x和y的结果是怎么运算得来的?结果中第一个x结果怎么来的?

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

qq_Smile猜不透_0

2015-01-16 15:52

#include <stdio.h>

int main()

{

    int x = 10;

    int y= 10;

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

    printf("--y=%d;y--=%d\n",--y,y--); 

    return 0;    

}

结果:

++x=12;x++=10
--y=8;y--=10

写回答 关注

1回答

  • Fiona0126
    2015-01-16 16:24:22

    首先要知道printf的运算是从右往左的..其次知道x++和++x的区别。

    我们假设y=x++;那么这个的运算顺序其实就是{y=x;x=x+1;};

    我们再假设y=++x;那么这个的运算顺序是{x=x+1;y=x;}

    这就是这两个的区别。然后考虑printf中的问题,它是自右往左的,所以一开始,x++的值用的其实只是x,然后用完之后x=x+1;所以x这里打印的是10,但是之后x的值是11,然后再来进行++x操作,前加加是直接加后运算的,那么x=12,然后打印出来的值也就是12了。下面的y类似~

    另外由于c语言中没有定义运算规则,所以结果还跟编译器版本有一定关系~

    _Melod...

    还是不懂为什么++x不是11而是12 x++为什么还是它本身而不是11

    2015-10-04 13:27:14

    共 4 条回复 >

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题