当前位置: 首页 > wzjs >正文

简洁文章类织梦网站模板东莞服务36招

简洁文章类织梦网站模板,东莞服务36招,公司网站建设全,周口哪家做网站好山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 动态存储方式与静态存储方式 从变量的作用域(即从空间)的角度来观察,变量可以分为全局变量和局部变量。 还可以从另一个角度,即从变量值存在…

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

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

从变量的作用域(即从空间)的角度来观察,变量可以分为全局变量和局部变量。

还可以从另一个角度,即从变量值存在的时间(即生存期)来观察。

有的变量在程序运行的整个过程都是存在的,而有的变量则是在调用其所在的函数时才临时分配存储单元,而在函数调用结束后该存储单元就马上释放了,变量不存在了。也就是说,变量的存储有两种不同的方式:

静态存储方式和动态存储方式。静态存储方式是指在程序运行期间由系统分配固定的存储空间的方式,而动态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式。

先看一下内存中的供用户使用的存储空间的情况。这个存储空间可以分为3部分:

( 1 )程序区;

( 2 )静态存储区;

( 3 )动态存储区。

数据分别存放在静态存储区和动态存储区中。全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。

在动态存储区中存放以下数据:

①函数形式参数。在调用函数时给形参分配存储空间。

②函数中定义的没有用关键字static声明的变量,即自动变量。

③函数调用时的现场保护和返回地址等。

对以上这些数据,在函数调用开始时分配动态存储空间,函数结束时释放这些空间。在程序执行过程中,这种分配和释放是动态的,如果在一个程序中两次调用同一函数,而在此函数中定义了局部变量,在两次调用时分配给这些局部变量的存储空间的地址可能是不相同的。

如果一个程序中包含若干个函数,每个函数中的局部变量的生不存期并不等于整个程序比时的执行周期,它只是程序执行周期的一部分。在程序执行过程中,先后调用各个函数,此时会动态地分配和释放存储空间。

在C语言中,每一个变量和函数都有两个属性:数据类型和数据的存储类别。对数据类型,已经熟知(如整型、浮点型等)。存储类别指的是数据在内存中存储的方式(如静态存储和动态存储)。

在定义和声明变量和函数时,一般应同时指定其数据类型和存储类别,也可以采用默认方式指定(即如果用户不指定,系统会隐含地指定为某一种存储类别)。

C的存储类别包括4种:自动的( auto )、静态的( static )、寄存器的( register )、外部的( extern )。根据变量的存储类别,可以知道变量的作用域和生存期。

局部变量的存储类别

1.自动变量(auto变量)

函数中的局部变量,如果不专门声明为static(静态)存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的局部变量(包括在复合语句中定义的局部变量),都属于此类。在调用该函数时,系统会给这些变量分配存储空间,在函数调用结束时就自动释放这些存储空间。因此这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明。

例如:

int f ( int a ) / /定义f函数,a为形参

{

auto int b,c = 3;/ /定义b,c为自动变量

...

}

其中,a是形参,b和c是自动变量,对c赋初值3。执行完f函数后,自动释放a,b,c所占的存储单元。

实际上,关键字auto可以省略,不写auto则隐含指定为“自动存储类别”,它属于动态存储方式。程序中大多数变量属于自动变量。前面几章中介绍的例子,在函数中定义的变量都没有声明为auto,其实都隐含指定为自动变量。

 


文章转载自:

http://8DKLeFmw.sgLcg.cn
http://okJt9wi4.sgLcg.cn
http://3lgITgkS.sgLcg.cn
http://Khbw5K1M.sgLcg.cn
http://Qzihb3hH.sgLcg.cn
http://o1BXZW3s.sgLcg.cn
http://veiW62CQ.sgLcg.cn
http://h5v3Yd34.sgLcg.cn
http://T0kfLWbv.sgLcg.cn
http://G2gSZoUS.sgLcg.cn
http://a7tu4sjK.sgLcg.cn
http://tiBW7lZp.sgLcg.cn
http://u1olGWUY.sgLcg.cn
http://SWWh2oiz.sgLcg.cn
http://TK2OJt8W.sgLcg.cn
http://GIOi8JBG.sgLcg.cn
http://FpGYy7mj.sgLcg.cn
http://7bfpwrKK.sgLcg.cn
http://CwgH3r9J.sgLcg.cn
http://xeEpN5eY.sgLcg.cn
http://vxMxZ4oQ.sgLcg.cn
http://QihL1jRH.sgLcg.cn
http://vtNCjs72.sgLcg.cn
http://l2vdusjL.sgLcg.cn
http://O4Vx8Ryi.sgLcg.cn
http://QTWjLndD.sgLcg.cn
http://Atm1BEUT.sgLcg.cn
http://tlA8TPTl.sgLcg.cn
http://FKDmxe3M.sgLcg.cn
http://Lcukok0u.sgLcg.cn
http://www.dtcms.com/wzjs/676302.html

相关文章:

  • 网站从建设到赚钱的流程昆山做百度网站
  • 揭阳网站建设工作公司邮箱登陆入口
  • 请人做ppt的网站软件综合课设做网站
  • wordpress写了文章 文章无法打开什么是搜索引擎优化?
  • 网站系统建设招标制作一个赚钱的网站
  • 万站霸屏seo关键词排名软件流量词
  • 如何替别人建网站挣钱网络营销推广策略有哪些
  • 佛山建网站费用网站字体一般是什么字体
  • 建邺网站建设58同城推广网站怎么做
  • 学校网站建设的优势和不足网站网页打不开怎么办
  • wordpress xml地图河北seo推广方案
  • 网站建设付款页面个人建设网站成本
  • 六安网站中国施工总承包100强
  • 嘉兴做网站美工的工作怎么做跨境电商网站
  • 网站数据库一般多大护肤品网站建设策划书
  • 网站排名下降了怎么办快递物流公司网站模板
  • 学校网站平台建设方案做网站的结论
  • 网站微信开发网站关键词基础排名怎么做
  • 网站开发和前端是一样吗个人网站备案网站内容
  • 为什么局域网做网站河南程序开发公司
  • 网站开发字体的引用搜索引擎优化与推广技术
  • 大型在线网站建设顺义网站建设
  • 沈阳seo建站做网站模板的软件
  • 深圳网络营销网站推广方法wordpress教程 李健
  • 网站推广计划书模板大型网页设计
  • 什么网站建设比较好的网站建设需要用软件
  • 网站的建设维护推广免费行情软件app网站直播下载
  • 网站首页添加代码中国建设银行网站E路护航官网
  • 搭建网站后的网址全球新冠死亡人数
  • php做网站优势公司做网站的开支会计分录怎么做