TC官方合作论坛
标题: TC:变量的作用域 [打印本页]
作者: 诚诚 时间: 2012-6-1 11:27
标题: TC:变量的作用域
在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,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中也可使用。
作者: 落叶归根 时间: 2012-6-1 11:31
支持城城版主。
作者: 战地之王 时间: 2012-6-1 11:31
学习了。
作者: 无情的冷风 时间: 2012-6-1 14:25
版主辛苦了。
作者: TakeBobo 时间: 2012-6-1 14:27
好好学习了。
作者: 21087567tc2 时间: 2013-11-22 11:06
你能写出这样的帖子出来很是让人佩服啊,惯例,既然进来了,就要顶一下
| 欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) |
Powered by Discuz! X3.1 |