gpt4 book ai didi

c - C 中未定义的行为

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

Possible Duplicates:
Parameter evaluation order before a function calling in C
order of evaluation of function parameters

以下代码的输出是什么:

n=5;
printf("%d %d\n", ++n, power(2, n));

输出=32

输出不应该是2^6 =64吗?

不同的编译器会给出不同的结果吗?

最佳答案

函数参数的求值顺序未指定。编译器可以按照它喜欢的任何顺序计算参数,但它必须按照某种特定的顺序执行(因此这里没有未定义行为)。输出可以是 32 或 64。

UPD:这是错误的,这里有UB,参见here .

关于c - C 中未定义的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6887890/

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