无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1。
无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。
printf(x=%d\n,x++); 输出值为100
printf(x=%d\n,++x); 输出值为102
难道不矛盾吗?
#include <stdio.h>
int main()
{
int x = 100;
printf("x=%d\n",x++);
//这里先取值在加1!
printf("x=%d\n",++x);
// 这里加1后 又加1再取值
printf("x=%d\n"--x);
// 减1后取值
printf("x=%d\n",x--);
// 取值后减1
printf("x=%d\n",x+1);
// 减1后加1
return 0;
}
这个题目是告诉你运算方是向由右至左,也一定要有值才能运算 ,如:b++>a等同 b >a ,++b>a等同 b+1+1>a。
printf("x=%d\n",x++);这个输出的是增大前的,输出之后让他+1
printf("x=%d\n",++x);这个是先让他+1,再给他输出来
a=0;a++;或++a;都是让a+1,在分号处表示已经执行完了整个过程
a++是先把a的值输出再去加一
++a是把a的值先加一在输出
你这个例子应该是100 和101
a++是先赋值给a再在a上加1:++a是先在a上加1再赋值给a
x++是先赋值再+1;++x是先+1再赋值给x;