C语言i++,i--问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:08:45
main(){int i=8;printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);}望大虾能从左至右的顺序求值说一下是多少,顺便解释下吧~

++i,先将i的值加一再打印,结果为9,i的值为9;
--i,先将i的值减一再打印,结果为8,i的值为8;
i++,先将i的值打印再加1,结果为8,i的值为9;
i--,先将i的值打印再减1,结果为9,i的值为8;
故结果为9 8 8 9
注:有的编译器是从右至左编译,所以结果可能不一样。

楼上两位搞错了
-- ++是同一个优先级,是从右往左算起
顺序变为i--,i++,--i,++i
i-- 输出8, i变为7
i++ 输出7, i变为8
--i 输出7, i变为7
++i 输出8, i变为8

答案是8778 经运行校对,正确

9//此时i为8+1=9,并打印输出
8//此时i为9-1=8,并打印输出
8//先输出当前i的值(8),然后i=8+1=9
9//先输出当前i的值(9),然后i=9-1=8