C语言基础语法(八):局部变量(非静态) 静态局部变量 静态局部存储器 auto(extern static register) 全局与静态全局存储器
发布时间
阅读量:
阅读量
| 类型 | 作用域 | 生命周期 | 存储位置 |
|---|---|---|---|
| auto变量 | 一对{}内 | 当前函数 | 栈区 |
| static局部变量 | 一对{}内 | 整个程序运行期 | 初始化在data段,未初始化在BSS段 |
| extern变量 | 整个程序 | 整个程序运行期 | 初始化在data段,未初始化在BSS段 |
| 全局变量 | 整个程序 | 整个程序运行期 | |
| static全局变量 | 当前文件 | 整个程序运行期 | 初始化在data段,未初始化在BSS段 |
| extern函数 | 整个程序 | 整个程序运行期 | 代码区 |
| static函数 | 当前文件 | 整个程序运行期 | 代码区 |
| register变量 | 一对{}内 | 当前函数 | 运行时存储在CPU寄存器 |
| 字符串常量 | 当前文件 | 整个程序运行期 | data段 |
一、作用域
C语言中变量的可见范围可分为以下几种类型:
- 代码块作用域(代码块指的是由花括号{}所界定的代码段)
- 函数作用域
- 文件作用域
1、局部变量
局部变量亦称为auto自动变量(其中auto关键字可省略),通常在代码块{}内部声明的变量均属于此类,其具备以下特性:
- 若在函数内部进行定义,则其作用域仅限于该函数内部
- 若在复合语句中声明,则其有效范围仅限于该复合语句
- 随着函数调用的终止或复合语句的完成,局部变量的生命周期也随之终结
- 若未
全部评论 (0)
还没有任何评论哟~
