C语言包含4种储存类型,见下表:
特征 | 自动储存类型 | 寄存器储存类型 | 静态储存类型 | 外部储存类型 |
关键字 | auto | register | static | extern |
储存于 | 内存 | CPU寄存器 | 内存 | 内存 |
默认初始值 | 垃圾值 | 垃圾值 | 0或空白符 | 0或空白符 |
作用域 | 局限于块 | 局限于块 | 局限于块 | 全局 |
生命周期 | 块内 | 块内 | 存在于函数之间 | 存在于函数之间 |
块指的是写在左右花括号:“ { } ” 内的一组语句。局部变量是声明在块内的变量。
局部变量与全局变量的区别:
局部变量是声明在块或者函数内部的变量。局部变量的作用域局限于该块或者函数。局部变量如果没有初始化,将包含垃圾数据。
全局变量是在所有块和函数之前声明的变量。全局变量对所有在它之后声明的函数有效。全局变量有默认值初始化,如0。