成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

全局变量和局部变量在内存中的区别

Q1:华为笔试题:全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

原来问的是存储方式的区别,抱歉,没看清题目......我觉得,如果思考的更全面的话,还可以从作用域、生命周期方面回答,作用域就不用说了,从全局变量和局部变量的字面意思就可以知道,它们的生命周期的区别是,全局变量的存储空间直到整个程序结束才会释放,而局部变量的存储空间是在函数调用结束时释放的(假设是函数的局部变量)。
查看原帖>>www.BAzHiShi.@Com

Q2:c语言中 全局变量与局部变量在内存中的区别

全局变量是使用相同的内存块在整个类中存储一个值.
全局变量的存在主要有以下一些原因:
1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不成为什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。
2,使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样现在也快不了多少。
3,对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。
总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使期名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。
局部变量:在程序中,只在特定的过程或函数中可以访问的变量,是相对与全局变量而言的。
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。
局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

ww∽W.bAzHIsHI.COm

Q3:转 全局变量和局部变量在内存里的区别

1、变量就是变量,在内存里没有区别。之所以我们编程时候感觉不同,是编译环境(编译软件)的规则进行了界定,它不让你乱来。
2、为了规范化编程,为了不让编程人员犯错,也为了能让计算机能真正“懂”得编程者的意图,才有了全局变量和局部变量。
3、局部变量只能用在指定的范围内。最常见的情况是,在一个函数内部定义一个变量,这个变量就只能在这个函数里面被引用,改变。这个变量的值如果想传递或影响到这个函数外就得通过别的方法中转,比如用返回值等方法将它转给别的变量后再带到外部。
4、全局变量作用于当前源代码的全部部分,无论是主程序代码中,还是函数中,你都可以直接引用,直接改变。
5、之所以要这样界定,最主要的还是为了保证编程的易懂、易用、可靠性。保证每个模块的独立性,与模块与模块之间的不关联性。比如两个程序员分别针对不同的功能编写了不同的模块后,两个模块需要合并在一起共同实现总体的功能,在这种情况下,如果不区分局部变量,那就极可能在两个模块中会有同名的变量定义,这就会造成混乱和错误!事实上,即便同一个人编程,也已经习惯在不同的模块里使用相同的变量名了,这些同名的变量因为是局部变量,所以能在不同的模块中各安其事。
6、再次说明的是,这些同名的局部变量,在物理内存中的存在与全局变量在存在上没有根本区别,区别是编译器对它们的处理方式。

wwW.b‖azHiSHI.COM

Q4:全局变量和局部变量在内存中的区别是什么

存储位置不同。
局部变量是在栈上的, 全局变量是放在全局变量区, 类似于堆上的一个空间。
所以访问速度上 局部变量是要优于全局变量的。

Q5:java中 全局变量与局部变量在内存中有什么区别?

提问者:
全局变量就是这个类的对象都可以访问的属性,局部变量就是某个方法内部临时定义的变量,当方法调用结束后,据不变量自然销毁。而全局变量只有在这个类的对象销毁时才会伴随销毁,如果相很多对象共享一个类的某个属性就用全局变量。

wWW.B!AZhISHi.cOm

Q6:java中 全局变量与局部变量在内存中有什么区别?

提问者:
全局变量就是这个类的对象都可以访问的属性,局部变量就是某个方法内部临时定义的变量,当方法调用结束后,据不变量自然销毁。而全局变量只有在这个类的对象销毁时才会伴随销毁,如果相很多对象共享一个类的某个属性就用全局变量。

猜你喜欢

更多