#include <stdio.h>
/*
1.变量作用域(作用范围)
从定义变量的那一行代码开始,一直到所在的代码块结束
2.代码块的作用
及时回收不再使用的变量,为了提升性能
*/
int test()
{
int score =200;
return0;
} //test函数结束后,score变量将会从内存中消失,释放内存空间
int main( )
{
int score;
test();
score =100;
printf("%d\n", score);//结果为100 (寻找变量就近原则)
/*
{ 代码块
int a = 10; 代码块
}
printf ("a=%d\n",a)
错误,的作用域为上面一个小的代码块,执行完代码块后,内存将被释放
a将消失,输出时会提示a未定义
*/
int a =100;
{
int a =200;//如果注释此行,结果将会是100
printf("a=%d\n",a); //结果为200,就近原则
}
printf("a=%d\n",a);//结果为100,函数块中的内容将消失
int a =100;
{
int a =200;
{
/* int a; //第一个输出结果是200,这个代码块中定义
了一个a,50将不会赋值给代码块外面的a,就近原则 */
a =50
}
printf("a=%d\n",a); //结果为50,小代码块会给a赋值一次,就近原则
}
printf("a=%d\n",a);//结果为100,函数块中的内容将消失
/*错误写法,执行第二行时,变量a尚未定义
int b;
b =a ;
int a = 10;
*/
return0;
}