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;}
好的
嗯嗯,
还有什么要问的吗
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消