gpt4 book ai didi

c - 为什么下面同一个 c 程序有两个输出?

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

#include <stdio.h>

main()
{
int n;
n+=2;
printf("sum=%d", n);
return 0;
}

这里是'Sum'=2

另一个程序:-

#include <stdio.h>

main()
{
int n,a=2;
n+=a;
printf("sum=%d", n);
return 0;
}

这里是输出'sum' = 3 为什么这样??代码有什么问题?

最佳答案

这是未定义的行为。使用未初始化的变量(两个代码片段中的n)可能会产生意外的结果,这意味着运行第一个代码两次可能会产生不同的输出。这两个代码都没有“正确”的输出,但如果您将两个代码中的 n 设置为特定值,您将开始获得一致的结果。

这是 UB(未定义行为):

main()
{
int n;
printf("sum=%d", n);
return 0;
}

这不是:

main()
{
int n = 0;
printf("sum=%d", n);
return 0;
}

关于c - 为什么下面同一个 c 程序有两个输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50893382/

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