gpt4 book ai didi

c - 运算符优先级和演变

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

用 C 语言

i = 7;
j = i++ * ++i; // outputs 64?

根据优先级,后增量首先出现

应该是7*9。指出我的错误。您能否为我提供一个资源,让我可以详细学习并了解这些东西是如何工作的,这就是评估的顺序等等。

最佳答案

你的问题是上面没有序列点。看 Undefined behavior and sequence points

因此,您无法控制 i 的两个增量发生的顺序(只是返回增量后的数字还是增量之前的数字)。因此,这是未定义的行为。

例如,它可以首先执行 ++i,返回 8,然后执行 i++,也返回 8,并给出 64。因为这是未定义的行为,从技术上讲,您可以获得任何结果。

关于c - 运算符优先级和演变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993200/

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