中文名
局部变量
外文名
Local variables
范围
C语言等面向过程语言中
特点
可以和全局变量重名
不足
局部变量会屏蔽全局变量
相关视频
5130播放|09:05
清华博士推荐干货课时065.「Python函数」局部变量和全局变量
盛说AI
5440播放|09:00
爬虫+数据分析+办公自动化-06局部变量与全局变量
一品聊机械
2.3万播放|14:24
C语言_064_全局变量和局部变量
彭珂的课堂
1万播放|13:44
「Python全套教程」局部变量与全局变量
动物大本营
5213播放|04:39
博学谷JS语法入门-64-全局变量和局部变量
博学谷
5303播放|12:12
从C语言开始学编程,全局和局部变量的区别
向阳花开满山红
5126播放|08:10
Python教程小白从入门到精通-31局部变量及全局变量
小咖聊机械
5325播放|22:03
学习编程中的函数(Python)有三大难点,局部变量全局变量是其一
我是Mark
5112播放|14:42
锐码教育-python-全局变量局部变量
锐码IT
5107播放|07:30
博学谷JS基础入门-136-全局变量和局部变量
博学谷
查看更多
定义全局变量变量的作用域重名现象应用TA说
定义
局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。
局部变量的生存期:从函数被调用的时刻算起到函数返回调用处的时刻结束[2]。
局部变量的作用域是定义该变量的函数或定义该变量的复合语句。也就是说,局部变量只在定义它的函数或复合语句范围内有效,只能在定义它的函数或复合语句内才能使用它们。如图1:
图1
在函数f1内定义了三个变量,a为形参,b、c为一般变量。在fl的范围内a、b、c有效,或者说a、b、c变量的作用域限于f1内。同理,x、y、i、j的作用域限于f2内。m、n的作用域限于main函数内。关于局部变量的作用域还要说明以下几点:
1、主函数main()中定义的变量也只在主函数中有效,而不能因为在主函数中定义在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。这一点是与其他语言不同的,应予以注意。
2、不同函数中可以使用相同名字的变量,它们代表不同的对象,分配不同的单元,互不干扰。例如,上面在f1函数中定义了变量b和c,倘若在f2函数中也定义变量b和c,它们在内存中占不同的单元,互不干扰。
3、形式参数是属于被调函数的局部变量。例如上面f1函数中的形参a,也只在f1函数中有效,其他函数可以调用f1函数,但不能引用f1函数中的形参a。
4、在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。
全局变量
全局变量也称外部变量,它是在函数外部定义的变量。它不属于哪一个函数,而是属于一个源程序文件:其作用域是整个源程序[3]。
几乎程序中的所有函数都能使用全局变量,客观上全局变量就起到了在函数间传递数据的作用,甚至可以减少形参和实参的数量。当然在享用它的好处时,也要慎重,避免全局变量过多带来的降低函数通用性及存储空间的浪费。
对于全局变量还有以下几点说明:
1、全局变量从程序运行起即占据内存,在程序整个运行过程中可随时访问,程序退出时释放内存。与之对应的局部变量在进入语句块时获得内存,仅能由语句块内的语句访问,退出语句块时释放内存,不再有效。
2、局部变量定义后不会自动初始化,除非程序员指定初值。全局变量在程序员不指定初值的情况下自动初始化为零。
3、在同一源文件中,允许全局变量和局部变量同名。在局部变量的作用域内,全局变量不起作用。
变量的作用域
在现实生活中,世界通用语言为英语,如果在其他国家说汉语,别人可能听不懂,但是如果说英语,那么世界各地的人都可能明白。与此类似,程序中的变量也有它自己的使用范围,我们称其为变量的作用域。变量的作用域都是通过它在程序中的位置隐式说明的。
C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量,如图2所示。
图2
重名现象
在C语言等面向过程语言中,局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
应用
在Java等面向对象语言中,也可能出现多个局部变量重名的情况。例如一个方法的形式参数与类成员的名字相同,这时形式参数会把类成员屏蔽,如果要访问类成员,应该用this关键字。
分享你的世界
我要分享见解,
点击发布
纠错
参考资料
[1] 刘平,陈琨主编,C语言程序设计教程 第2版,贵州大学出版社,2016.08,第170页
[2] 祁建宏,张志斌主编,C程序设计与系统开发,西安电子科技大学出版社,2016.08,第158页
[3] 邵雪航,王春明主编;杨迎副主编;杜凯主审,C语言程序设计教程,中国铁道出版社,2016.02,第135页
男性问题怎么办?试试这个方法,简单实用,不遭罪
保列通广告
12月7日股市利好消息:超过80分的股票千万不能卖,坐等涨停!
钱坤证券广告
python 零基础,Python大数据开发一站式学习
关注python的人也在看
python,1100位实操讲师组成的强大教学阵容,Python编程全程项目驱动教学,项目实战教学,层层递进,课程设置贴合企业用人需求,多种职业规划...
黑马程序员广告
大家还在搜
c%20变量
局部变量
变量
c++
未引用的局部变量怎么改
如何定义局部变量
控制变量怎么找
离散变量和连续变量举例
相关推荐
局部变量_相关词语
我来回答这个问题,虽然不懂js语言框架什么的,但公司去年也有这个业务需求,当时老板是直接找ZEGO即构科技,接入了他们的音视频SDK,SDK里包含了所有视频通话需要的功能,接入方便、快捷,通过四行代码,半天就可以搭建系统了,很实用。