马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,TC语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。TC语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。
局部变量 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。
例: 功能 整型 A(整型 a) 整型 b,c 返回 0 功能结束 //a,b,c在函数A中有效
功能 整型 B(整型 x) 整型 y,z 返回 0 功能结束 //x,y,z在函数B中有效,a,b,c在B函数中无效
功能 整型 C() 整型 m,n 返回 0 功能结束 //m,n在函数C中有效,a,b,c,x,y,z在C函数中无效
在函数A内定义了三个变量,a为形参,b,c为一般变量。在 B的范围内a,b,c有效,或者说a,b,c变量的作用域限于A函数内。同理,x,y,z的作用域限于B函数内。m,n的作用域限于C函数内。关于局部变量的作用域还要说明以下几点:
1) 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
2) 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。如在前例中,形参和实参的变量名都为n,是完全允许的。
3) 在复合语句中也可定义变量,其作用域只在复合语句范围内。
全局变量
全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个空间里面的所有函数都有效的变量。其作用域是整个空间。
例:
- 空间 测试
- 整型 a,b; //全局变量
- 功能 逻辑型 A()
- a=1
- 返回 真
- 功能结束
- 功能 整型 B()
- b=1
- 返回 a+b
- 功能结束
- 空间结束
复制代码 从上例可以看出a、b 都是在函数外部定义的外部变量,都是全局变量。a,b定义在测试 空间名后面,而且没写在函数A和B里面,因此在函数A和函数B中也可使用。
|