C语言的变量
## C语言中的变量
在C语言中,变量是对程序中数据所占内存空间的一种抽象定义。定义变量时,用户定义变量的名、变量的类型,这些都是变量的操作属性。不仅可以通过变量名访问该变量,系统还通过该标识符确定变量在内存中的位置 [❷](https://www.dotcpp.com/course/27)。
### 变量的定义和声明
在C语言中,变量的定义和声明是两个不同的概念。变量定义用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。而变量声明则用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。但是,通过使用extern关键字声明变量名而不定义它,这被称为extern声明,它不是定义,因为不分配存储空间 [❶](https://blog.csdn.net/gatieme/article/details/50640424) [❹](https://www.cnblogs.com/MoKinLi/p/12663366.html)。
### 变量的存储类型
在C语言中,变量的存储类型关系到变量的存储位置,C语言中定义了4种存储属性,即自动变量(auto)、外部变量(extern)、静态变量(static)和寄存器变量(register),它关系到变量在内存中的存放位置,由此决定了变量的保留时间和变量的作用范围 [❷](https://www.dotcpp.com/course/27)。
### 变量的生命周期
变量的生命周期也称为生存期,从时间角度,可将变量分为静态存储和动态存储两种情况:
- 静态存储是指变量存储在内存的静态存储区,在编译时就分配了存储空间,在整个程序的运行期间,该变量占有固定的存储单元,程序结束后