C 语言中变量的存储类别:
-
自动类型(auto)
-
寄存器类型(register)
-
静态类型(static)
-
外部变量(extern)
自动类型(auto)
自动类型(auto)变量是存储在动态存储区的变量。
关键字:auto
一般形式为:auto 类型 变脸名
局部变量默认储存类型为 auto
寄存器类型(register)
寄存器类型(register)变量存储单元被分配在寄存器中。
关键字:register
一般形式为:register 类型 变量名
注意:
-
寄存器类型的变量不宜过多;
-
变量长度应该与通用寄存器的长度相当,一般为 int 型或 char 型;
-
寄存器变量的定义通常是不必要的。
静态类型(static)
静态类型(static)变量占用静态存储区。
关键字:static
一般形式为:static 类型 变量名
静态变量拥有默认值。
静态类型又分为静态局部变量和静态全局变量。
静态局部变量:
定义在函数内的静态变量称为静态局部变量。
说明:
-
静态局部变量的生存周期是整个程序的运行期间;
-
静态局部变量具有局部变量的性质,即其作用域是局限在定义它的本函数内的,但其值仍然存在,因为存储空间并没有释放;
-
静态局部变量的赋初值的时间是在编译阶段,并且只能被赋初值一次,即使它所有的函数调用结束,也不释放存储单元。
静态全局变量:
在定义全局变量时前面加上关键字 static,就是静态全局变量。
静态全局变量的特点:
-
其作用范围(即作用域)是定义它的程序文件,而不是整个程序;
-
静态全局变量的生存周期是整个程序运行期间;
-
使用静态全局变量的好处是同一程序的两个或多个不同的源程序文件中可以使用相同名称的变量名,而互不干扰。
外部类型(extern)
外部类型(extern):在任何函数之外定义的变量都叫做外部变量。
关键字:extern
一般形式:extern 类型 变量名
在一个文件中定义的全局变量缺省为外部的。即 extern 关键字可以省略。但是如果其他文件要使用这个文件中定义的全局变量,必须在使用前用“extern”作外部声明。外部声明通常放在文件的开头。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于