花括号内的变量声明
Variable declaration inside curly braces
为什么下面的代码会产生错误?我不明白为什么花括号会有所作为。
#include<stdio.h>
int main(void)
{
{
int a=3;
}
{
printf("%d", a);
}
return 0;
}
局部变量的范围仅限于 {} 之间的块。
换句话说:在包含 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 作用域变量
大括号内 定义 的变量仅当程序在大括号内 运行 时才存在。当程序退出'}'时,就像您的情况一样,这些变量将被销毁,并且曾经占用的内存将返回给系统。
如果您需要此实现,您可以对其进行更改,以便定义位于大括号之外。
例如:
c/c++
#include <stdio.h>
int main(){
int a;
{a = 3;}
{printf("%d",a) ;}
return 0;}
为什么下面的代码会产生错误?我不明白为什么花括号会有所作为。
#include<stdio.h>
int main(void)
{
{
int a=3;
}
{
printf("%d", a);
}
return 0;
}
局部变量的范围仅限于 {} 之间的块。
换句话说:在包含 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 作用域变量
大括号内 定义 的变量仅当程序在大括号内 运行 时才存在。当程序退出'}'时,就像您的情况一样,这些变量将被销毁,并且曾经占用的内存将返回给系统。
如果您需要此实现,您可以对其进行更改,以便定义位于大括号之外。 例如:
c/c++
#include <stdio.h>
int main(){
int a;
{a = 3;}
{printf("%d",a) ;}
return 0;}