首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >6.7 变量的存储方式和生存期

6.7 变量的存储方式和生存期

作者头像
小林C语言
发布于 2019-08-19 11:01:02
发布于 2019-08-19 11:01:02
9590
举报

为了让大家有个明确的学习方向,请大家分享给有需要的人,谢谢!

一、动态存储方式与静态存储方式

C语言中,每一个变量和函数都有两个属性:数据类型和数据的存储类别

从变量值存在的时间来观察,变量的存储有两种方式静态存储方式和动态存储方式

二、局部变量的存储类别

(1)自动变量(auto变量)

函数中的局部变量,如果不专门声明为static(静态)存储类别,都是动态地分配存储空间 的。在调用该函数时,系统会给这些变量分配存储空间,在函数调用结束时就自动释放这 些存储空间,因此这类局部变量称为自动变量

注意:关键字“auto”可以省略,不写auto则隐含指定为“自动存储类别”

(2)静态局部变量(static局部变量)

作用:局部变量的值在函数调用结束后不消失而继续保留原值

(3)寄存器变量(register)

为了提高执行效率,允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器 去除参加运算,不必再到内存中去存取,这种变量叫做寄存器变量

三、全局变量的存储类别

(1)在一个文件内扩展外部变量的作用域

如果由于某种考虑,在定义点之前的函数需要引用该外部变量,则应该在引用之前用关键 字extern对该变量作“外部变量声明”,表示把该外部变量的作用域扩展到此位置

(2)将外部变量的作用域扩展到其他文件

(3)将外部变量的作用域限制在本文件中

原创不易,未经本公众号允许禁止转载,否则追究法律责任

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 为了让大家有个明确的学习方向,请大家分享给有需要的人,谢谢!
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档