自增自减是指在完成运算所得值给下一步使用吗?
#include <stdio.h> int main() { int x = 0; printf("x=%d\n",x++); printf("x=%d\n",++x); return 0; }
以上面这段代码为例,
int x=0;
定义了x的值为0,
printf("x=%d\n",x++);
输出上面一行代码中“x++”的运算结果,结果:x=0,
为什么x=0呢?因为“x++”的运算规则是 先取值再运算 ,换成人话就是,先输出x的值:0,再去加1。虽然现在显示的是0,实际上他的值已经变成了1。
printf("x=%d\n",++x);
这里再输出上面一行代码中“++x”的运算结果,结果:x=2,
为什么x=2呢?因为“++x”的运算规则是 先运算再取值 ,再换成人话就是,先计算x+1,再输出结果,
前面也说过,在执行过“printf("x=%d\n",x++);”这一行代码后,x已经变成了1,所以这时的x=1+1=2。
PS:我也是初学者,如果哪里说错了,请指出,一定虚心接受!
i++是先取值再加1;
++i是先加1再取值;
比如:
int m=5,n;
//n=m++;
//n=++m;
第一种输出n就是5,但m=6;
第二种输出n就是6,m=6;