目录
1. 自动存储持续性
在默认情况下,在函数中声明的函数参数和变量的储存持续性为自动,作用域为局部,没有链接性。也就是说,如果在main()中声明了一个名为texas的变量,并在函数oil()中也声明了一个名为texas变量,则创建了两个独立的变量——只有在定义它们的函数中才能使用它们。
另外,当程序开始执行这些变量所属的代码块时,将为其分配内存:当函数结束时,这些变量都将消失。
如果在代码块中定义了变量,则该变量的存在时间和作用域将被限制在该代码块内。例如:
int main()
{
int teledeli = 5;
{ //websight allocated
cout << "Hello\n";
int websight = -2; //websight scope begins
cout << websight << ' ' << teledeli << endl;
} //websight expires
cout << teledeli << endl;
} //teledeli expires
当内部代码块的变量也为teledeli,程序执行内部代码块中的语句时,将teledeli解释为局部代码块变量。
即:新的定义隐藏了以前的定义,新定义可见,旧定义暂时不可见。在程序离开该代码块时,原来的定义又重新可见。