展开全部
这个问题考察的是运算符的优先级,++和--的优先级高于取反(-)
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
但是,压栈顺序没有硬性规定,所以不同编译器可能有不同的压栈操作,结果会有不同
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
但是,压栈顺序没有硬性规定,所以不同编译器可能有不同的压栈操作,结果会有不同
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询