第1个回答 2019-05-13
假设int
a
=
1;
那么假设printf("%d",--a);那么是将a减1,然后输出a
输出的结果就是:0
假设printf("%d",a--);是先输出a,然后执行a-1.
输出结果是:1
int
a
=
1;
printf("%d\n",a--);
//
是先输出a,然后执行a-1.
printf("%d\n",a);
//
所以这里输出的a是0!
而且注意不要把增量运算符或减量运算符放在输出中,比如:
int
a
=
1;
printf("%d\t%d\t%d\t%d\n",a,a++,a,a++);
输出结果是
3
2
2
1
你可能疑惑为什么第二个a++不是3呢?因为标准C并没有规定在一个语句中是每执行执行一次增减量运算符后执行增减还是整个语句执行完后完成增减...所以最好不要使用这种方法.可以把语句分开来运算...