gpt4 book ai didi

c - 为什么 c =++(a+b) 给出编译错误?

转载 作者:太空狗 更新时间:2023-10-29 16:14:41 27 4
gpt4 key购买 nike

经过研究,我读到增量运算符要求操作数具有可修改的数据对象:https://en.wikipedia.org/wiki/Increment_and_decrement_operators .

由此我猜测它会给出编译错误,因为 (a+b) 是一个临时整数,因此不可修改。

这个理解对吗?这是我第一次尝试研究问题,所以如果有什么我应该寻找的,请提出建议。

最佳答案

这只是一条规则,仅此而已,并且可能会 (1) 使编写 C 编译器更容易,并且 (2) 没有人说服 C 标准委员会放宽它。

非正式地讲,如果 foo 可以出现在赋值表达式的左侧,例如 foo = bar,您只能编写 ++foo .因为你不能写a + b = bar,所以你也不能写++(a + b)

a + b 不能产生 ++ 可以操作的临时值,这没有真正的原因,其结果是表达式 ++(a + b)

关于c - 为什么 c =++(a+b) 给出编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50951261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com