码迷,mamicode.com
首页 > 其他好文 > 详细

全局变量与局部变量

时间:2016-05-13 00:47:00      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

C/C++中全局变量与局部变量的关系

  1. 全局变量与局部变量可以重名,在某个函数内引用变量时,会用到局部变量而不是全局变量,可以理解为“就近原则”。 
     

  2. 当一个函数体内有多个局部变量时,这些局部变量的作用于就限定在函数体内的更小一级区域,比如函数体内有两个循环体,在两个循环体内都定义了局部变量val,则val的作用域就为循环体内而不仅仅是函数体内。

  3. 重名情况下如果要使用全局变量,则需要使用作用域运算符(::),将该作用域运算符放在重名变量之前。  
     
  4. 全局变量可以被多个.C与.CPP文件使用,但要以static限定作用域为仅在本源文件中,也可在不同文件中声明,但只能允许在一处地方声明。    
     
  5. static放在全局变量之前构成静态全局变量,这与普通全局变量相比,在存储方式上都是静态存储方式,区别在于作用域。静态全局变量的作用域为定义该变量的源文件,所在在同一源程序下的其他源文件是无法使用该变量。而普通全局变量的作用域为整个源程序。一个源程序可以由多个源文件组成。  
     
  6. static放在局部变量之前构成静态局部变量,这与普通局部变量相比,作用域相同,区在于存储方式。静态全局变量为静态存储,而局部变量为动态存储。 
     
  7. 全局变量、静态局部变量、静态全局变量都存放在静态数据存储区。局部变量存放在栈区。 
      
  8. 当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。因为局部变量在函数调用后就销毁了,虽然地址还在,但是那个地址存的数据是无法保证安全性的。


全局变量与局部变量

标签:

原文地址:http://blog.csdn.net/u011272513/article/details/51346958

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!