打印
[经验分享]

全局变量和局部变量的区别

[复制链接]
301|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
janewood|  楼主 | 2023-8-18 23:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
全局变量和局部变量的区别有:1.有效范围不一样,2.内存空间不同,3.使用区间不同。局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;全局变量的有效范围是从定义变量的位置开始到本源文件结束。局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间。
全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。全局变量:作用于整个程序文件;局部变量:作用于所属语句块或函数中。
全局变量的存在主要有以下一些原因:使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。全局变量的优先度低于局部变量。总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使其名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。在C语言等面向过程语言中,局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。


使用特权

评论回复
沙发
kmzuaz| | 2023-9-7 10:57 | 只看该作者
全局变量是在函数之外定义的,其作用域是整个程序,生命周期也是整个程序运行期间。局部变量是在函数内部定义的,其作用域仅限于函数内部,生命周期是在函数调用时开始,在函数返回时结束。

使用特权

评论回复
板凳
vivilyly| | 2023-9-7 11:25 | 只看该作者
全局变量在程序运行期间会一直占用固定的存储空间,无论是否使用它们。而局部变量只会在其定义的代码块、函数或方法被执行时分配存储空间,执行结束后就会释放,节省了内存资源。

使用特权

评论回复
地板
hearstnorman323| | 2023-9-7 11:52 | 只看该作者
全局变量在整个程序中都是可见和可访问的,它们的作用域是整个程序。而局部变量的作用域限定在定义它们的特定代码块、函数或方法内部,超出该范围就无法访问。

使用特权

评论回复
5
vivilyly| | 2023-9-7 12:07 | 只看该作者
全局变量可以在程序的任何位置进行访问,包括不同的函数或模块。而局部变量只能在其定义的代码块、函数或方法内部进行访问,对于外部的代码是不可见的。

使用特权

评论回复
6
elsaflower| | 2023-9-7 13:47 | 只看该作者
全局变量在定义时需要赋初值,而局部变量在定义时不需要赋初值,它的默认值为0或空字符串。

使用特权

评论回复
7
claretttt| | 2023-9-7 14:09 | 只看该作者
全局变量与局部变量在作用域、生命周期、访问方式、命名冲突和存储空间等方面有明显的区别

使用特权

评论回复
8
pixhw| | 2023-9-7 14:43 | 只看该作者
如果全局变量和局部变量重名,那么局部变量会屏蔽全局变量。

使用特权

评论回复
9
backlugin| | 2023-9-7 14:58 | 只看该作者
全局变量和局部变量的主要区别在于定义位置、作用域、生命周期、存储方式以及使用方式上。

使用特权

评论回复
10
burgessmaggie| | 2023-9-7 15:08 | 只看该作者
全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。

使用特权

评论回复
11
updownq| | 2023-9-7 15:32 | 只看该作者
全局变量是在程序中任何地方都可以访问的变量,而局部变量只能在定义它的函数或代码块中访问。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

1091

帖子

1

粉丝