变量作用域和存储类型
变量类型
一、按作用域,变量类型
1、局部变量 和 局部静态变量
1.1 局部变量(函数内,char x;):x仅限定义该变量的函数内部自己使用,在函数被调用而产生,随函数返回而消灭。
1.2 局部静态变量(函数内,static char x;):x仅限定义该变量的函数内部自己使用,在函数下次被调用时,x可恢复到上一次函数返回前的状态。
2. 外部变量和外部局部变量
2.1 全局变量(函数外,char x):也称外部变量。所有函数共用,从程序一开始运行就存在直到程序结束。
2.2 外部局部变量(函数外,static char x):x仅限同一个文件内的函数使用。因外部变量本身就已经是恒久存在的,外部静态变量实际上反倒变成了外部变量的限制版。
二、按内存,变量的类型
动态存储变量:在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。(时而存在、时而消失)
静态存储变量:变量定义时就在存储单元并一直保持不变,直至整个程序结束。(一直存在)
三、不同作用域的变量,属于什么储存类型
动态存储变量: 自动变量(auto)、寄存器变量(register)
静态存储变量: 外部变量(全局变量, extern)、静态变量(static)
[注]
自动变量定义时不初始化:起始值不确定
其他变量定义时不初始化:起始值为0或null