gpt4 book ai didi

C 传递参数的顺序。这段代码是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 19:24:54 24 4
gpt4 key购买 nike

代码

#include <stdio.h>

int main()
{

int a =1;
printf("%d%d%d%d\n",a,++a,++a,a);

a=1;
printf("%d%d%d%d\n",a,a++,++a,a);

a=1;
printf("%d%d%d\n",a,++a,a++);

return 0;
}

输出

3333
3233
331

最佳答案

这是“未定义的行为”。你不能依赖 C 语言中函数参数的求值顺序。当我们说“未定义的行为”时,我们的意思是任何事情都可能发生:它可能在一个编译器上工作,它可能在另一个编译器上不起作用;它可能在禁用优化的一个编译器上工作,但在启用优化的同一个编译器上不起作用;它可能根本不起作用;它可能会完美地工作;它可能会转储核心;它可能会让抹香鲸和一碗矮牵牛从天而降。

(参见 https://www.quora.com/What-is-the-passage-on-the-whale-and-the-bowl-of-petunias-about )

关于C 传递参数的顺序。这段代码是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59617315/

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