7.5 局部变量和全局变量

7.5.1 局部变量

在一个函数内部定义的变量叫局部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用,在此函数外是不能使用这些变量的。看看如下范例:

有几点说明:

(1)main函数中定义的变量m、n、k只在main函数中有效。虽然main函数调用了其他函数(func1函数),但其他函数中无法使用main函数中定义的变量(如果能使用的话,main函数就不必传递实参到函数中去了)。

(2)不同的函数内部可以使用相同的变量名,互不干扰。例如,在上述func1函数中也可以定义变量m、n、k等,它们与main函数中定义的变量m、n、k占用不同的内存单元,互不混淆。

(3)形参也是局部变量,如上述函数func1中的tmpvalue,只在func1函数内有效,在其他函数中不能使用tmpvalue。

(4)有一种特殊写法——复合语句(一般只用于写一些测试代码的目的),虽然不一定会这样用,但一旦遇到这种写法,也要能够识别:

绘制一个形象点的局部变量有效范围示意图如图7.11所示。

图7.11 局部变量有效范围示意图

图7.11中,变量c只在复合语句内有效,离开该复合语句后变量c就会无效,其内存也会被系统释放(回收)。