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