Sunset
273 字
1 分钟
变量的生存期和作用域
生存期:
指的是变量从什么时候开始,从什么时候结束。
作用域:
指的是变量的生效范围,在什么区域内可以访问。
对于本地变量而言,这两者的答案是一样的——函数的大括号内。
在不同的函数之间,变量的作用域不同,所以就算是相同名称的变量也不会互通。
比如这样:
If(a>10)
{
Int I=10;
}
I++;
这样会报错:i是一个没有声明的变量,这是因为int仅仅在if的块里,出了大括号之后的i就不是括号里被定义过的i,所以对i进行处理会出错。
你甚至可以直接用大括号来定义一个局部变量,像是这样:
{
Int a=100;
Printf(“%d”,a);
}
括号内的a不仅可以被赋值,也可参与printf这种函数,在括号后外面定义的a完全不影响括号内的a。但是,在块外面定义的变量,在块内依然有效,在所有块的最外面定义的变量为全局变量。