变量的另一种属性:存储期(也称生命期)
存储期是指变量在内存中的存在期间。可以分为静态存储期和动态存储期!
全局变量,静态外部变量,静态局部变量都在静态存储中,另外动态存储中有:
1.函数形式参数(即函数的形参)
2.函数中的局部变量(这里指未加static声明的局部变量)
3.函数调用时的现场保护和返回地址
C++中变量除了数据类型的属性之外,还有存储类别的属性
存储类别指的是数据在内存中存储的方法,即动态存储,静态存储两大类,具体为:
1.自动的(auto) 形参和函数中变量一般都是自动的,即动态存储中因为auto可以省略,即不写系统默认为auto
2.静态的(static) 在静态存储区分配存储单元,在程序整个运行期间都不释放,外部变量添加static只限于被本文件引用
3.寄存器的(register) 将局部变量的值放在CPU的存储器中(针对频繁使用的变量,提高执行效率)
4.外部的(extern) 全局变量在函数的外部定义,作用域为从变量的定义开始,到本程序文件末尾
如果在定义点之前的函数想用该全局变量,则应该在引用之前用extern进行外部声明!
例子:
main(){
extern int a,b;//此处使用了未定义的全局变量
cout<<max(a,b)<<endl; }
int a=13,b=23;
int max(int x,int y){
int z;
z=x>y?x:y;
return z;}