TC官方合作论坛

 找回密码
 立即注册
查看: 481|回复: 5
打印 上一主题 下一主题

[笑话] TC:变量的作用域

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-1 11:27:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

  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:40 | 只看该作者
支持城城版主。
回复 支持 反对

使用道具 举报

板凳
发表于 2012-6-1 11:31:49 | 只看该作者
学习了。
回复 支持 反对

使用道具 举报

地板
发表于 2012-6-1 14:25:42 | 只看该作者
版主辛苦了。
回复 支持 反对

使用道具 举报

5#
发表于 2012-6-1 14:27:02 | 只看该作者
好好学习了。
回复 支持 反对

使用道具 举报

6#
发表于 2013-11-22 11:06:48 | 只看该作者
你能写出这样的帖子出来很是让人佩服啊,惯例,既然进来了,就要顶一下
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2026-3-30 08:22 , Processed in 0.085195 second(s), 22 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表