gpt4 book ai didi

与程序的输出混淆

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

Possible Duplicate:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
Undefined Behavior and Sequence Points

#include<stdio.h>
int main(){
int i=5,j=5,y,x;
int m=++i;
int n=++i;
x=m+n;
y=++j + ++j ;
printf("%d %d ",x,y);
return 0;
}

输出:13 14谁能解释一下为什么 'y' 值为 14 而不是 13。

最佳答案

大多数编译器会在执行加法并将值赋予 y 之前将 j 递增两次,这就是您的情况的结果是 14 的原因。

不过,C 标准没有指定该表达式的计算顺序,因此在另一个编译器上,结果实际上可能是 13。

换句话说,这是未定义的行为,除了混淆竞赛和谜题之外,不应该使用。

关于与程序的输出混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433630/

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