为什么以下代码会产生错误?我不明白为什么花括号会有所作为。
#include<stdio.h>
int main(void)
{
{
int a=3;
}
{
printf("%d", a);
}
return 0;
}
答案 0 :(得分:6)
局部变量的范围仅限于{}之间的块。
换句话说:在包含int a=3;
a
的块之外是不可见的。
#include<stdio.h>
int main()
{
{
int a=3;
// a is visible here
printf("1: %d", a);
}
// here a is not visible
printf("2: %d", a);
{
// here a is not visible either
printf("3: %d", a);
}
return 0;
}
提示:google c作用域变量