i+=+i--+-+--i+*(i=-3)*+i+++++++i;
1个回答
关注
展开全部
你好,这道题的答案确实比较难理解。首先,需要了解运算符的优先级,可以通过运算符的结合性来确定。让我们来分解一下代码:i--:postfix decrement,所以它返回 i 原来的值 10,并将 i 更新为 9。--i:prefix decrement,所以它返回更新后的 i 值 8。i=-3:assignment,将 i 更新为 -3,并返回 i 的新值 -3。i++:postfix increment,所以它返回 i 的旧值 -3,并将 i 更新为 -2。++i:prefix increment,所以它返回更新后的 i 值 -1。现在,我们可以用这些值来代入原式:i = 10-- - --8 * (-3) * -2++ + ++(-1);i = 10 - 7 * (-3) * -2 + (-1) + 1;i = 36;因此,最终结果为 36。这类问题通常需要牢记运算符优先级、结合性和副作用等因素,否则容易导致困惑。
咨询记录 · 回答于2023-03-02
i+=+i--+-+--i+*(i=-3)*+i+++++++i;
你好
#include int main(){ int i=10; i = i-- - --i *(i=-3)* i++ + ++i; printf("i= %d",i); return 0;}
这个答案为什么是36啊不理解
你好,这道题的答案确实比较难理解。首先,需要了解运算符的优先级,可以通过运算符的结合性来确定。让我们来分解一下代码:i--:postfix decrement,所以它返回 i 原来的值 10,并将 i 更新为 9。--i:prefix decrement,所以它返回更新后的 i 值 8。i=-3:assignment,将 i 更新为 -3,并返回 i 的新值 -3。i++:postfix increment,所以它返回 i 的旧值 -3,并将 i 更新为 -2。++i:prefix increment,所以它返回更新后的 i 值 -1。现在,我们可以用这些值来代入原式:i = 10-- - --8 * (-3) * -2++ + ++(-1);i = 10 - 7 * (-3) * -2 + (-1) + 1;i = 36;因此,最终结果为 36。这类问题通常需要牢记运算符优先级、结合性和副作用等因素,否则容易导致困惑。
#include int main(){ int i=10; i = i-- - --i *(i=-3)* i++ + ++i; printf("i= %d",i); return 0;}
好的
嗯嗯,
还有什么要问的吗