关于b--,b++,++b,--b

来源:百度知道 编辑:UC知道 时间:2024/05/12 05:22:48
int b=10;
printf("%d %d %d %d %d\n",b,--b,++b,b++,b--);
输出10 10 11 10 10 怎么会这样?
我测试过 不等于10 10 11 9 10

++a是使用前加,a--为使用后加,因为括号有运算,需按优先级进行,向左匹配,依次为10-10-11-10-10,而在变量后的++,--优先级没有变量前的高,所以在最后才执行+与-,此时b的终值仍是10

从最后一个匹配开始运算的~ 你自己反过来 看看 就应该明白了
输出应该是10 10 11 9 10

你的测试结果是什么?用什么系统?什么编译器?

按照Printf函数数据进栈顺序,确实应该是10 10 11 9 10