- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 数据的存储类型 10.1 变量在内存中的存储 10.2 局部变量和全局变量 10.3 变量的存储类型 10.4 内部函数和外部函数 10.5 动态存储单元 10.6 修饰符const 本章介绍C语言对变量规定的一些存储类型。其中要涉及到变量的生存期,变量的作用域,可见性,局部变量和全局变量等一些重要概念。 10.1 变量在内存中的存储 系统为运行程序,在内存中为数据的存储开辟了两块区域:静态数据区和动态数据区。分配在静态数据区的变量,叫做静态变量,分配在动态数据区的变量叫做动态变量。 变量从在数据区建立到被撤销,这段时间称为变量的生存期。分配在静态数据区的变量,在程序运行结束前是一直存在的。这样的变量的生存期为程序的运行期。 有些变量是在程序运行期间根据需要动态地分配到动态数据区的,在适当的时候会将这种动态变量的空间收回。所以,动态变量的生存期是有限的。 变量在程序的某一部分是有效的,而在另一部分可能是无效的,不可见的。有的变量可能在整个程序文件中一直有效的。对于上述情况,我们说变量有不同的作用域。所谓变量的作用域,就是指变量的使用范围。 从作用域这个角度讲,变量区分为局部变量和全局变量。全局变量分配在静态数据区,而局部变量则根据需要可能分配在动态数据区,也可能分配在静态数据区。 10.2 局部变量和全局变量 10.2.1 局部变量 在任何一个代码块内定义的变量叫做局部变量。所谓代码块就是在一对花括号内的代码段,包括函数体,函数体内的语句块。 局部变量只能在说明它的代码块内使用,局部变量的作用域,限于说明它的代码块内:从说明的地方开始至所在的代码块结束。 局部变量在执行说明它所在的代码块时,才是存在的。当退出其代码块时,这些变量也就随之消失,成为不可见。 例10.2.1 下面的程序,在同一个main()函数中,定义了三个数据类型和变量名均相同的局部变量i。在访问这些变量i中,它们不会混淆。因为它们是三个不同的局部变量。它们各有自己的作用域。 程序如下: #include stdio.h main() { int i = 10; /* 定义函数main()的局部变量i,它的作用域是整个函数内 */? printf(Enter a positive or negative number: ); scanf(%d, i); printf(In main() i = %d\n,i); ? if(i0) { int i = -10; /*定义在if代码块内的局部变量i有效,主函数定义的i不可见*/ printf(In if i is %d\n, i); } else { int i = 20; /* 定义else代码块的局部变量i有效,前两个i不可见 */ printf(In if_else i is %d\n, i); } ? printf(The i in main() still is %d\n, i); /*主函数定义的i有效*/ return; } 局部变量在没有初始化或没有被赋值之前,它的值是不确定的。 形参也是局部变量。它的作用域和使用规则,与函数内部的局部变量完全一样。 10.2.2 全局变量 作用域是从定义点开始直到程序文件结束的变量,称为全局变量。 整个程序文件设置全局变量的好处就在于,增加了函数间传递数据的渠道。 例10.2.2 求下面一元二次方程的根: 要求在这个程序中,方程的系数a,b,c设置为局部变量,方程的根X1,X2和根的虚部q和实部p都设置为全局变量,b2?4ac的值d也设置位全局变量。三种根(两个不同的实根,两个相等的实根和两个虚根)分别由三个函数计算。 程序如下: #include stdio.h #include math.h float X1, X2, p, q, d;
您可能关注的文档
- 天水市人口合理容量的测算及分析.doc
- 第09节 条件分支语句.doc
- 第07篇 串行口UART.ppt
- Hadoop概述和2.0生态组件简介.docx
- 水库水体近红外反射峰及叶绿素含量之间的关系.pdf
- 51单片机 寄存器及指令.pdf
- 人文三维哲学系统表和略谈29VM.doc
- 2012年《新课标创新设计》高考语文二轮复习课件和教案1-1-1-3.ppt
- 韩国济州岛包车价格及包车游玩线路攻略.pdf
- 怎样学好fpga.pdf
- 十虚拟现实技术在教育中的应用与人才发展前景报告.docx
- 生物发酵技术在生物能源装备制造行业的应用与优化报告.docx
- 面向2025年的开放银行生态构建,创新合作模式与金融科技应用研究综述.docx
- 2025年特色农产品电商直播基地产品研发与创新能力评估报告.docx
- 2025年音乐产业深度解析:版权运营策略与科技创新趋势报告.docx
- 传媒行业2025人才流动报告:新媒体运营人才在职业发展中的竞争力提升.docx
- 艺术教育平台在2025年乡村振兴战略中的应用研究报告.docx
- 2024-2025学年初中数学八年级上册苏科版(2024)教学设计合集.docx
- 2025年医药企业研发外包(CRO)质量控制标准与流程优化报告.docx
- 2025年教育科技企业市场细分与精准营销策略研究报告.docx
文档评论(0)