【发布时间】:2012-11-19 22:58:44
【问题描述】:
我试图弄清楚为什么即使局部变量 i 从未在这个 C 程序中初始化,许多系统仍会打印出 0 1 2 3 4 5 6 7 8 9 有人可以解释这是为什么吗?任何帮助表示赞赏!
void foo() {
int i;
printf("%d ", i++);
}
int main() {
int j;
for (j = 1; j <= 10; j++) foo();
}
【问题讨论】:
-
在我的系统上,它给出了
134513713 134513714 134513715 134513716 134513717 134513718 134513719 134513720 134513721 134513722。所以,它可能会也可能不会是 0 1 2 等等。 -
每个答案都将其归因于运气。你一定是个很幸运的人:)
-
是的,我开始明白这一点,也许我只是认识合适的人 :)
-
我手工制作的 C++ 编译器擦除了我的硬盘 10 次。它认为我的编译器按照标准做得很好!
标签: c variables stack initialization