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)  在复合语句中也可定义变量,其作用域只在复合语句范围内

全局变量
全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个空间里面的所有函数都有效的变量。其作用域是整个空间。
例:

  1. 空间 测试
  2. 整型 a,b;    //全局变量
  3. 功能  逻辑型  A()
  4. a=1
  5. 返回 真
  6. 功能结束

  7. 功能  整型  B()
  8. b=1
  9. 返回 a+b
  10. 功能结束
  11. 空间结束
复制代码
从上例可以看出ab 都是在函数外部定义的外部变量,都是全局变量。a,b定义在测试 空间名后面,而且没写在函数AB里面,因此在函数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