变量可以在文件作用域或者块作用域中声明,在文件作用域中声明的变量称为全局变量,在块作用域中声明的变量称为局部变量。
1.局部变量
一般来说,在一个函数内部声明的变量为局部变量,其作用域只在本函数范围内。也就是说,局部变量只能在定义它的函数体内部使用,而不能在其它函数内使用这个变量。
说明:
- 在不同的函数中可声明具有相同变量名的局部变量;
- 形参也是局部变量,其作用域在定义它的函数内。所以形参和该函数体内的变量是不能重名的。
2.全局变量
在文件作用域中声明的变量称为全局变量,全局变量在声明后可以被很多函数使用。
说明:
- 全局变量的作用域是从声明该变量的位置开始直到程序结束处;
- 如果想在声明全局变量的前面使用该变量,而不需要重新声明,就必需使用extern关键字对其加以说明。
3.生命期
程序中的各种变量都有一个在需要时被创建,而在不需要时被删除的过程。在创建和删除之间所经过的时间称为生命期。
1.局部变量的存储方式
(1)自动存储方式
局部变量,如不进行专门说明(专门说明为静态变量),都存放在堆栈区。对这些变量存储空间的分配和回收是由系统自动完成的,所以也叫自动变量。自动变量也可用关键字auto进行说明。