【发布时间】:2022-01-13 09:12:57
【问题描述】:
#include <stdio.h>
int A()
{
int array[10];
int i;
for (int i = 0; i < 10; i++)
{
array[i] = i;
}
}
int B()
{
int array[10];
int i;
for (int i = 0; i < 10; i++)
{
printf("%d", array[i]);
}
}
int main()
{
A();
B();
}
这是我的代码,我认为数组应该在函数 B 中重新初始化一次,所以我认为 Visual Studio 的答案是我想要的,但我不明白为什么 GCC 会返回这个答案
【问题讨论】:
-
因为未定义的行为。任何事情都有可能发生。
-
你在不同函数中的变量是不同的变量。
arrayinB()使用时未初始化。 -
你期望什么输出,为什么?
标签: c scope initialization undefined-behavior function-definition