专栏首页C语言入门到精通6.7 变量的存储方式和生存期

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

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

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

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

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

二、局部变量的存储类别

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

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

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

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

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

(3)寄存器变量(register)

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

三、全局变量的存储类别

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

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

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

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

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

本文分享自微信公众号 - C语言入门到精通(yclzl960229)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 让Python提速超过30倍的必杀技:Cython

    人工智能最火的语言,自然是被誉为迄今为止最容易使用的代码之一的Python。Python代码素来以直观、高可读性著称。

    CDA数据分析师
  • 让Python提速超过30倍的必杀技:Cython

    人工智能最火的语言,自然是被誉为迄今为止最容易使用的代码之一的Python。Python代码素来以直观、高可读性著称。

    新智元
  • java基础第十二篇之集合、增强for循环、迭代器和泛型

    public static void main(String[] args) { // TODO Auto-generated method stub //...

    海仔
  • C++ RCSP智能指针简单实现与应用

    智能指针的实现代码来源博客:《http://blog.csdn.net/to_be_better/article/details/53570910》

    jianghaibobo
  • 搭建 Nginx 静态网站

    搭建静态网站,首先需要部署环境。下面的步骤,将告诉大家如何在服务器上通过 Nginx 部署 HTTP 静态服务。

    php007
  • 提速30倍!这个加速包让Python代码飞起来

    Python是社区里最受喜爱的编程语言!它是目前为止最易使用的语言,因为它的代码短小精悍,符合人们的思维方式,也符合人们的阅读习惯。

    大数据文摘
  • 提速30倍!这个加速包让Python代码飞起来

    Python是社区里最受喜爱的编程语言!它是目前为止最易使用的语言,因为它的代码短小精悍,符合人们的思维方式,也符合人们的阅读习惯。

    统计学家
  • C++单继承、多继承情况下的虚函数表分析

    C++的三大特性之一的多态是基于虚函数实现的,而大部分编译器是采用虚函数表来实现虚函数,虚函数表(VTAB)存在于可执行文件的只读数据段中,指向VTAB的虚表指...

    jianghaibobo
  • 《Android FFmpeg 播放器开发梳理》第零章 基础公共类的封装

    在开始介绍播放器开发之前,我们首先对posix库进行一定的封装,得到我们想要的 Mutex、Condition、Thread等类。

    glumes
  • java核心技术基础知识整理

    在子类构造器中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过;

    ZhangXianSheng

扫码关注云+社区

领取腾讯云代金券