关于C语言标准输出函数printf的问题

这样为什么是这个结果

这个问题考察的是运算符的优先级,++和--的优先级高于取反(-)
i++(或者i--)表示先取用i的值,然后再进行自加(或者自减)运算
++i(或者--i)表示先对i进行自加(或者自减)运算,再取用i的新值
多数编译器会从右向左对参数压栈,所以printf函数会从右向左依次计算参数值。
i=8,->(-i--)=-8,此时i=7
->(-i++)=-7,此时i=8
->(i--)=8,此时i=7
->(++i)=8,此时i=8
->(--i)=7,此时i=7
->(++i)=8,此时i=8
->i=8
但是,压栈顺序没有硬性规定,所以不同编译器可能有不同的压栈操作,结果会有不同
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-28
不同的编译器显示的结果不同,请问你是用vc6.0吗?追问

code blocks

第2个回答  2018-02-28
这种东西无视就可以了,写出这种东西的人我想打他
相似回答