当前位置:   article > 正文

全局变量与局部变量_全局变量指针指向局部变量

全局变量指针指向局部变量

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

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

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

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


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程变革者/article/detail/63286
推荐阅读
相关标签
  

闽ICP备14008679号