c语言复习之路,之一


变量类型

变量的存储类型

C语言根据变量的存储类型的不同,可以把变量分为:自动变量静态变量寄存器变量

自动变量

  • 定义:自动变量是存储在堆栈中的。
  • 所有局部变量默认情况下都是自动变量
  • 声明周期:自动变量随所在代码块被执行而创建,随所在代码块执行结束而销毁。如果函数被重复调用,自动变量会被重复创建、销毁。

静态变量

  • 定义:静态变量存储于静态内存中,也就是不属于堆栈。
  • 哪些是静态变量:
    • 所有的全局变量都是静态变量。
    • 被关键字static修饰的局部变量也是静态变量。
    • 声明周期:静态变量在程序运行之前被创建,始终存在。

寄存器变量

  • 定义:存储在硬件寄存器中的变量,称为寄存器变量。
  • 哪些变量是寄存器变量:
    • 被关键字register修饰的自动变量都是寄存器变量。
    • 只有自动变量才可以是寄存器变量,静态变量(全局变量)不行。
    • 寄存器变量只限于intchar指针类型使用。
  • 生命周期:调用该函数时占用寄存器中存放的值,当函数结束时释放寄存器,变量消失。
  • 使用注意:
    • 不能过多使用。如果寄存器使用饱和时,程序将寄存器变量自动转换为自动变量处理。
    • 为了提高运算速度,一般会一些频繁使用的自动变量定义为寄存器变量,这样程序尽可能地为它分配寄存器存放,而不用内存。
register int a;  // a就是一个寄存器变量

参考

  1. 【C语言】18-变量类型——M了个J