静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)

区分静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)

静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)

文章参考:https://blog.csdn.net/21aspnet/article/details/2560072
文章参考:https://blog.csdn.net/u013921430/article/details/79279114

变量的分类来看

变量分类

  1. 作用域分类
    局部变量(默认是自动局部变量)
    1. 定义:在一个函数内部定义的变量(包括函数形参)
    2. 有效范围:一直在本函数有效
    3. 变量存储:栈内存,函数结束之后自动销毁
    4. 静态局部变量:存储在静态存储区,作用域依旧在函数体内部。每次对其修改都会被保存下来。
    ** 全局变量 **
    1. 定义:在函数外部定义的变量,可为本源文件中其他函数使用
    2. 有效范围:从定义变量的位置开始到本源文件的结束
    3. 变量存储:存储在静态存储区域(静态内存)
    4. 可被工程项目其他文件的 extern 声明之后调用,对其每次修改都会进行保存
    5. 静态全局变量:不能被其他源文件使用,只能本源文件使用,并且每次修改会被保存
  2. 生存周期分类
    静态存储方式——程序运行期间分配固定的存储空间的方式
    动态存储方式——程序运行期间根据需要进行的动态分配空间的方式
    又可分为
    1. auto(自动)——默认,数据存储在动态存储
    2. static(静态)——函数在调用结束之后会保存本次调用的数值
    3. register(寄存器)——在声明动态局部变量或者函数形参时,可将变量声明为register,这样编译系统就会为变量分配一个寄存器而不是内存空间,通过这种方式可提升对某些局部变量频繁调用的程序的性能。(寄存器运算速度远高于内存)
    4. extern (外部)——扩展全局变量的作用域
    原文作者:超级无敌小湾娘
    原文地址: https://blog.csdn.net/qq_36150316/article/details/103261433
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞