存储的属性有哪些

存储的属性有: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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLW的头像Z, ZLW
上一篇 2023年1月13日 下午10:04
下一篇 2023年1月15日 下午6:10

相关推荐

  • 高效需求管理:10款优质需求池管理工具分享

    本文将分享10款优质需求池管理工具:PingCode、Worktile、Teambition、Epicor Kinetic、TAPD、SAP IBP、Logility、RELEX Solutions、JIRA、明道云。 在管理项目和产品需求时,正确的工具能够大幅提高效率与透明度。如何从众多需求池工具…

    2024年7月11日
    1000
  • 好用的个人项目管理软件有哪些

    文章介绍了9款个人项目管理软件:PingCode、Worktile、Flowus、Todoist、Trello、Teambition、有道云笔记、Notion、Microsoft To Do。 在管理个人项目时,是否常感到信息零散、进度难以把控?选择合适的项目管理软件,可以有效解决这些问题,让你的任…

    2024年7月10日
    1900
  • 项目管理使用哪个项目管理软件好?主流工具全面对比

    盘点不同行业、项目类型的下的12款主流的项目管理软件:PingCode、Worktile、Teambition、TAPD、广联达、Asana、Basecamp、Jira、Microsoft Project、ClickUp、Redmine、Trello。 在这个项目管理工具层出不穷的时代,选择一个合适…

    2024年7月9日
    500
  • tapd项目管理免费吗

    TAPD从2022年左右开始面由一个完全免费的工具向付费工具转变。从最新政策看,TAPD 针对不同规模和需求的团队,TAPD提供了多种版本,其中包括“卓越版”和“企业版”。免费版本人数规模由原来的100人不断缩小,2024年仅支持30人以内免费,还限制了项目数量。 近年来,随着免费政策的调整,许多潜…

    2024年7月9日
    100
  • 团队提效必备:2024年值得关注的10款优质软件需求管理工具

    本文将分享2024年10款高效需求管理工具:PingCode、Worktile、Tapd、禅道、Teambition、ClickUp、Tower、Asana、Jira 和 monday.com。 在快速变化的软件开发环境中,选择合适的需求管理工具变得至关重要。项目失败往往源于需求不明确或管理不善,这…

    2024年7月9日
    800

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部