gpt4 book ai didi

c-faq 和我的编译器之间的矛盾

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:48 30 4
gpt4 key购买 nike

C-faq说代码:

int i = 7;
printf("%d\n", i++ * i++);

打印 49。不管求值顺序如何,它不应该打印 56 吗?当我在我的 Turbo C 3.0 编译器上运行这段代码时,它给出了 56 的输出。为什么会有矛盾?

最佳答案

没有矛盾。这个问题是从用户角度出发的,如果你仔细阅读答案,你会发现备注

The behavior of code which contains multiple, ambiguous side effects has always been undefined.

所以它可能会打印 49 或 56。毕竟,未定义的行为是未定义的。这就是为什么没有真正的矛盾。您可能想复习一下对序列点的理解。

关于c-faq 和我的编译器之间的矛盾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773512/

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