存储的属性有哪些

存储的属性有:1、存储位置;2、生存期;3、变量的作用域。存储位置是指,变量存储的地点,有普通内存、运行时堆栈、硬件寄存器三种存储位置,变量的缺省存储类型取决于它的申明位置。

存储的属性有哪些-Worktile社区

1、存储位置

  • 普通内存
  • 运行时堆栈
  • 硬件寄存器

变量的缺省存储类型取决于它的申明位置:

  • 凡是在任何代码块之外声明的变量总是存储在静态内存中。不属于堆栈内存,这类变量称为静态变量。静态变量在函数运行之前创建。
  • 在代码块内部声明的变量的缺省存储类型是自动的,存储在堆栈中。
  • 对于在代码块内部声明的变量,如果给它加上 static 关键字,可以使它的存储类型由自动转变为静态。具有静态存储类型的变量在整个执行过程中一直存在。而不仅仅是它所在的代码块执行的时候存在。注意:修改变量的存储类型,并不修改变量的作用域,它只是在该代码块内部按名字访问。
  • 寄存器变量:register 关键字。在程序运行时,根据需要到内存中相应的存储单元中调用,如果一个变量在程序中频繁使用,例如循环变量,那么,系统就必须多次访问内存中的该单元,影响程序的执行效率。因此,C语言\C++语言还定义了一种变量,不是保存在内存上,而是直接存储在CPU中的寄存器中,这种变量称为寄存器变量。

2、生存期

从对象分配到内存开始,到垃圾回收器从内存中删除对象结束这一段时间。即对象的存在时间。生存期分为分为静态生存期和动态生存期。

标准C语言中,变量可以具有3种生存期中的一种:

  • 静态生存期:只要程序开始运行,这种生存期的变量就被分配了内存,这种变量的生存期和程序的运行期相同.
  • 局部生存期:这种变量的生存期开始于程序执行经过其声明点时,而结束于命名它的标识符所在的作用域尾.
  • 动态生存期:这种变量可以随时创建,随时删除,创建和删除是程序员用内存操作函数进行的。

3、变量的作用域

作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突。对于对象而言(其他也是一样的),在main函数中,对象的作用域为他所在的最近的一对花括号内。在后花括号处析构函数被调用;全局的对象的作用域为声明之后的整个文件,析构函数在最后被调用。另外,临时产生的对象在使用完后立即会被析构。

作用域分为全局作用域和局部作用域:

  • 全局作用域:由于内置名称空间的名字与全局名称空间的名字,可以在任何位置来访问,所以它们俩可以划到同一个范围,称之为全局范围即全局作用域。
  • 局部作用域:局部名称空间的名字只能在当前的函数中访问,所以它单独划到一个范围中,这个范围称之为局部作用范围即局部作用域。

延伸阅读

java中变量的存储位置

  • 寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。
  • 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)
  • 堆:存放所有new出来的对象。
  • 静态域:存放静态成员(static定义的)。
  • 常量池:存放字符串常量和基本类型常量(public static final)。
  • 非RAM存储:硬盘等永久存储空间。

文章标题:存储的属性有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/35549

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年1月13日 下午10:04
下一篇 2023年1月15日 下午6:10

相关推荐

  • erp有哪些主要功能模块

    erp的主要功能模块:1、财务管理功能模块;2、会计核算功能模块;3、生产控制管理功能模块;4、采购管理功能模块;5、库存控制功能模块等。财务管理功能模块是指,企业的财务管理人员可通过ERP系统中的决策支持智能系统,了解企业的经营状况。 1、财务管理功能模块 企业的财务管理人员可通过ERP系统中的决…

    2023年1月5日
    8300
  • 什么是Scratch少儿编程

    Scratch 是麻省理工学院的“终身幼儿园团队”在 2007 年发布的一种图形化编程工具,主要面对全球青少年开放,是图形化编程工具当中最广为人知的一种,所有人都可以在软件中创作自己的程序。截至 2022 年仍在更新。 一、软件介绍 Scratch 是麻省理工学院开发的一款简易图形化编程工具。这个软…

    2023年2月10日
    6200
  • vs乱码怎么解决

    vs乱码的解决方法:1、修改文件的编码;2、强制指定文件执行;3、修改控制台的编码格式;4、对数据进行编码转换。修改文件的编码是指,修改源代码文件的”编码格式”, 使其和控制台的编码格式保持一致。 1、修改文件的编码 修改源代码文件的”编码格式”, 使其和控制台的编码格式保持一致。控制台的编码格式默…

    2023年1月9日
    12700
  • SQLite的select效率为什么不受表的大小影响

    原因有:一、SQLite的存储方式;二、SQLite的查询优化;三、SQLite的索引机制;四、SQLite的缓存机制;五、SQLite的逐行查询方式;六、SQLite的线程安全性。SQLite采用了一种特殊的存储方式,将整个数据库作为一个文件保存在磁盘上。而且,每个表也都是作为一个文件存储的。 一…

    2023年5月31日
    500
  • 如何做甘特图

    以Word为例,做甘特图的步骤:1、创建一个空白的微软 Word 文档;2、将方向更改为“横向”;3、单击插入菜单;4、单击图表;5、选择堆积条形图并确定;6、输入甘特图的数据等。创建一个空白的微软 Word 文档可以通过在PC或Mac上启动Word并选择“空白”来执行此操作。 1、创建一个空白的微…

    2023年2月9日
    16000
  • SSDB 和 Redis 的优缺点各有哪些

    SSDB的优点:1、大数据存储能力;2、读性能优越;3、比较便宜;SSDB的缺点:1、写性能较差;2、相关教程少;3、主从复制效率很低。Redis的优点:1、数据存储在内存, 读写速度快,性能优异等;Redis 的缺点:1、数据存储在内存,主机断电则数据丢失等。 一、SSDB的优点 二、SSDB的缺…

    2023年1月8日
    14200
  • mysql 有哪些特殊符号

    mysql 的特殊符号:1、ASCII 0(NUL)字符;2、单引号(’);3、双引号(”);4、退格符;5、换行符;6、回车符;7、tab字符;8、ASCII 26(控制(Ctrl)-Z);9、反斜线(‘\’)字符;10、‘%’字符;11、‘_’字符。ASCII 0(NUL)字符是指,ascii码…

    2023年1月9日
    97400
  • C语言中printf函数里转义字符“\\”存在的意义

    反斜杠 \ 是C语言中一个非常重要的转义字符,它的存在使得我们可以方便地在输出中使用各种特殊符号,同时也可以用于转义一些特殊的字符。在C语言中,理解并熟练掌握反斜杠 \ 的用法是非常重要的。 在C语言中,printf函数是非常常用的一个输出函数。我们可以使用printf函数在控制台输出各种各样的信息…

    2023年2月28日
    14500
  • 透明计算和云计算究竟有哪些区别和联系

    透明计算和云计算的区别:1、媒介不同;2、透明计算终端客户机更轻量化;3、透明计算是需求驱动的流式执行;4、透明计算计算完全在客户端执行和完成。透明计算和云计算的联系:1、以网络为中心;2、虚拟(透明)化;3、分布式计算和共享资源池。 一、透明计算和云计算的区别 1、媒介不同 云计算是通过电脑、笔记…

    2023年2月28日
    3300
  • 软件团队如何落地敏捷开发(Scrum)

    软件团队如何落地敏捷开发(Scrum)的步骤:1、确定产品负责人;2、组建敏捷小组;3、确定敏捷教练;4、拟定产品需求;5、评估产品需求;6、冲刺规划会;7、工作透明化等。确定产品负责人要求,产品负责人必须知道自己带领的团队需要做什么产品以及取得什么成果。 1、确定产品负责人 产品负责人必须知道自己…

    2023年1月1日
    5200

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部