gpt4 book ai didi

c - GCC 中该表达式中的值是如何计算的

转载 作者:行者123 更新时间:2023-11-30 18:14:23 25 4
gpt4 key购买 nike

Possible Duplicate:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)

我在程序中有一个表达式,初始值为 i = 10

int j = i++ + i++;

它设置j as 20但是

int j = i++ + ++i;

它设置j as 22
为什么陈述之间有两个差异?我认为,差异应该是1。
我知道这在 C 中是未定义的,但为什么 GCC正在做这样的事情吗?

最佳答案

对于 i++ 来说,就像:首先计算方程,然后递增 i。

对于++ i 来说就像:首先递增 i,然后做方程。

所以我猜 i+++++i 被解释为 i + (++(++i)) 所以结果是 22。

有线的事情是用有线语法发生的,只是不要做这样的事情;)。

如果我是对的,++i+++i 也将是 22。

关于c - GCC 中该表达式中的值是如何计算的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13112534/

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