第8章 函数(七)戏说变量的生存期

简介:       声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:80368704       角色可以在某特定的时刻创建,或在剧情不再需要时被删除。

 

     声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:80368704

       角色可以在某特定的时刻创建,或在剧情不再需要时被删除。创建和删除之间所经过的时间,我们不妨称为角色的生存期。角色只有在生存期中才被分配(占用)舞台或银幕,这意味着,只要角色存在,角色的扮演者就存在,除非导演使用手段更新了角色的扮演者。当角色被删除之后,他在舞台或银屏上的位置就空闲出来了,供在创建其他角色时再次使用,这保证了舞台或银屏的有效使用。

    我的理解中,角色可以具有3种生存期中的一种:
       ·静态生存期:只要剧情开始,这种生存期的角色就在舞台或银屏上出现,直到整个剧本结束,这种角色的生存期和剧本的演出期相同.这种角色就是主角.
       ·局部生存期:这种角色的生存期开始于剧本的某一集或某段故事的开始处,而结束于本集尾或本段故事尾.
       ·动态生存期:这种角色可以随时创建,随时删除,比如一些群众演员.



       如果说程序是一个剧本,那么程序开始运行就是剧本开始演出了。作为角色,变量开始在舞台上出现,那么这里的舞台是什么呢?是内存!程序是在内存中运行,在运行的过程中,变量在内存中表演着,他的一切举动和变化,由程序员写的程序语句决定.
       好,程序是剧本,变量是角色,内存是舞台,接下来的描述,你可以和最前面2段的内容对比着看,以便理解!



       变量可以在某特定的时刻被创建,或在不再需要时被删除.在创建和删除之间所经过的时间,被称为变量的生存期。变量只有在生存期中才被分配(占用)内存,这意味着,只要变量存在着,在变量中存储的值就存在(不会丢失),除非程序员使用操作更新了变量的值。当变量被删除之后,他所占用的内存单元被标记为空闲,供在建立其他变量时再次使用,这保证了内存空间的有效使用。

    标准C中,变量可以具有3种生存期中的一种:
       ·静态生存期:只要程序开始运行,这种生存期的变量就被分配了内存,这种变量的生存期和程序的运行期相同.
       ·局部生存期:这种变量的生存期开始于程序执行经过其声明点时,而结束于命名它的标识符所在的作用域尾.
       ·动态生存期:这种变量可以随时创建,随时删除,创建和删除是程序员用内存操作函数进行的;迄今为止,我们还没有使用过这种变量.

       我们看到,作为程序运行中的角色.变量也有静态生存期,局部生存期,动态生存期的概念.C中的变量:extern和static是静态生存期,auto是局部生存期,而对于标准C程序员,可以用内存操作函数创建和删除动态生存期的变量.

       由于存储类和生存期的概念相对抽象,同时和其他知识点联系颇多,对于初学者无必要深究.因此,我采用戏说的形式,让你有个粗略的了解,暂时就不做过多的解释了.
相关文章
|
7月前
|
C++
全局变量初始化顺序探究
全局变量初始化顺序探究
|
1月前
|
C语言
【C语言】函数实参与形参详解
【C语言】函数实参与形参详解
40 0
|
5月前
|
编译器 C语言 C++
一分钟搞懂什么是this指针(未涉及静态成员和函数)
一分钟搞懂什么是this指针(未涉及静态成员和函数)
|
存储 C语言 Perl
西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?
今天给大家讲一下什么是局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。
西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?
|
10月前
|
存储 C语言 容器
【C语言—零基础第十四课】变量的作用域与存储类
作用域就是说到在哪里可以使用在哪里不可以使用。例如你是一家公司的老总,手下的人都听你指挥。而你出了公司去别的公司调研别的公司的人也听从你的指挥吗?你也不给人家发工资人家为啥要听你指,大致就是这么个意思。如果你开了几十个公司,到这几个公司去他们也听你的。孩子不要在幻想了,好好敲代码把。
40 0
|
10月前
变量的作用域和生存周期
变量的作用域和生存周期
|
11月前
|
C语言
【C语言】什么是变量的作用域和生命周期?
1.什么是作用域? 作用域就是一个变量名在程序中的有效范围,出了他所在的作用域变量名就会失效。
|
JavaScript 前端开发
JavaScirpt基础 之 变量 之 声明变量
声明(创建) JavaScript 变量
57 0
JavaScirpt基础 之 变量 之 声明变量
|
网络协议 测试技术 Go
结构体声明和使用陷阱|学习笔记
快速学习结构体声明和使用陷阱
85 0
结构体声明和使用陷阱|学习笔记
|
存储 程序员 C语言
手写C语言之函数概念-函数分类-实参与形参-传值调用与传址调用介绍(13)
手写C语言之函数概念-函数分类-实参与形参-传值调用与传址调用介绍
132 0
手写C语言之函数概念-函数分类-实参与形参-传值调用与传址调用介绍(13)