从下面的代码中如何打印全局值:
条件是,我们不能使用extern关键字,不应该注释本地初始化,也不应该移动printf函数。
#include <stdio.h>
int a = 20;
int main()
{
int a = 10;
printf("%d",a);
}
我希望输出20
。
答案 0 :(得分:2)
extern将无济于事,因为您在大多数内部作用域(在这种情况下,是函数main的作用域)中都有另一个具有相同名称的变量。因此,如果是全局变量,则会看到此变量。
您需要重命名这些变量之一。
int a=20;
int main()
{
int b=10;
printf("%d",a);
}
您可能有更多内部作用域:
int a=20;
int main()
{
int a=10;
{
int a = 5;
{
int a = 2;
printf("%d",a);
}
}
}
结果为2