c中的变量可以按三个标准进行划分:
1)作用域
文件作用域(又称全局作用域)
代码快作用域(函数的局部变量,函数中声明的变量)
函数原型作用域
函数作用域(c语言中仅对goto语句的符号)
2)链接
空链接(局部变量就是空链接)
外部链接
内部链接(使用static关键字修饰)
3)存储周期
静态存储周期(变量在程序执行期间将一直存在)
自动存储周期(具有代码块作用域的变量一般具有自动存储周期,在程序进入定义这些变量的代码块时,将为这些变量分配内存;当退出这个代码块时,分配的内存将被释放。
存储类就是基于三个标准来进行的分类:
1:自动存储类型变量(不会进行自动初始化,若为初始化,其初值是先前占用分配给它存储空间的任意值)
2:寄存器存储类型变量(寄存器变量不可以使用&进行地址获取,因为寄存器中的变量无地址)
3:外部存储类型变量(也称作具有外部作用域的静态变量、外部链接的静态变量ps:静态就是指静态存储周期,就是指在程序运行期间一直存在),就是把一个变量定义在所有的函数之外,为了程序代码的清晰,可使用extern进行修饰,不初始化会自动进行初始化,初始值为0
4:具有代码块作用域的静态变量(函数代码块中使用static关键字修饰的变量,改种变量若不显示的初始化,其初始值为0)
5:具有内部链接的静态变量(具有内部链接的静态变量只可以被与它在同一个文件中的函数使用)