如果我在 for
循环中定义 int x;
,为什么编译器将 x
的值显示为 0
.但是,当从 for
循环中删除 int x
时,x
的值为 10
。
#include<stdio.h>
int main() {
int x = 0, i;
for(i = 1; i <= 10; i++) {
int x;
x = 10;
}
printf("%d", x);
}
最佳答案
如果您的 for 循环中有 int x
,您将创建一个新的 x
变量。这意味着您的程序中实际上有两个 x
变量,一个可以从您的 main()
函数访问,另一个只能在 for-环形。如果您从 for 循环中访问 x
,编译器将选择最接近的一个。
如果您的 for 循环中没有 int x
,那么只有一个 x
,您的程序将输出 10
.
关于C程序的困惑输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54851557/