- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2)在同一源文件中,如果全部变量与局部变量同名,则在局部变量的作用范围内,全局变量不起作用。【例6.9】写出程序的输出结果。(3)在程序中定义全局变量的主要目的是为函数间的数据联系提供一个直接传递的通道。在某些应用中,函数将执行结果保留在全局变量中,使函数能返回多个值。在另一些应用中,将部分参数信息放在全局变量中,以减少函数调用时的参数传递。因程序中的多个函数能使用全局变量,其中某个函数改变全局变量的值就可能会影响其他函数的执行,产生副作用。 6.5.2 变量的存储类别变量具有可访问性和存在性两种基本属性。前面介绍的变量作用域是指在程序的某个范围内的所有语句都可以通过变量名访问该变量,即代表变量的可访问性。 在计算机中,保存变量当前值的存储单元有两类:一类是内存,另一类是CPU中的寄存器。变量的存储类别就是讨论变量的存储位置,C语言中定义了4种存储类别,即自动(AUTO)变量、外部(EXTERN)变量、静态(STATIC)变量和寄存器(REGISTER)变量,它关系到变量在内存中的存放位置。C语言用变量的存储类别指明变量的存在性,可分为两大类:静态存储和动态存储。所谓静态存储是指在程序运行期间分配固定的存储空间,而动态存储则是在程序运行期间根据需要动态分配存储空间。变量的可访问性与存在性在某些场合是一致的,但在有些场合则不一致。存在这样的情况,一个变量在某时刻虽然存在,但此时不可访问它。 1.局部变量的存储类别(1)自动变量。(2)局部静态变量。【例6.10】写出程序的输出结果。(3)寄存器变量。另有两点需特别指出,其一是寄存器变量不能执行取地址运算(用运算符);其二是寄存器变量不能是静态变量。 2.全局变量的存储类别全局变量是在函数之外定义的变量,编译时按静态方式分配存储单元。全局变量可以为程序中各个函数所引用。一个C程序可以由一个或多个源程序文件组成,而全局变量定义的作用域是从它的定义处开始到源程序文件的末尾。如果在位于全局变量定义之前的函数中要引用该全局变量,需在引用之前对它作外部变量声明。同样地,如果在定义全局变量源文件之外的源文件中引用该全局变量,也需在引用之前对它作外部变量声明。在变量定义之前冠以关键字EXTERN,就声明变量是外部变量。 为了表明变量是静态的,在变量定义时冠以关键字STATIC。在C语言中,“静态”包含两方面的意义。从程序对象在程序执行期间的存在性来看,静态表示该程序对象“永久”存在。从程序对象可访问或可调用来看,静态表示该程序对象的专用特性。具体表现在,局部静态变量只有定义它的函数可访问,全局静态变量只有在定义它的源文件中可访问或可调用。 6.6 内部函数和外部函数6.6.1 内部函数内部函数又被称为静态函数,它只能被定义它的文件中的其他函数调用,而不能被其他文件中的函数调用,亦即内部函数的作用范围仅仅局限于本文件。为了定义内部函数,需要使用关键字STATIC。例如:STATIC LONG FACTORIAL(INT X);此时,函数FACTORIAL的作用范围仅局限于定义它的文件,而在其他源文件中不能调用此函数。如果在不同的源文件中存在同名的内部函数,它们互不干扰。 6.6.2 外部函数因为函数与函数之间都是并列的,即函数不能嵌套定义,所以函数在本质上都具有外部性质。内部函数(静态函数)只能被定义它的源文件中的函数调用,而不能被其他源文件中的函数调用。除此之外,其余的函数既可被定义它的源文件中的函数调用,也可以被其他源文件中的函数所调用,即其作用范围不只局限于函数所在的源文件,而是整个程序的所有文件。有时为了明确这种性质,可以在函数定义和调用时使用关键字EXTERN,EXTERN既可用于外部函数的定义,也可用于外部函数的声明。 6.7 函数应用举例【例6.11】先定义函数求,然后调用该函数求。【例6.12】设计一个按分数规则进行加减法的程序。其中I=K×M±N×L,J=L×M,I、J的最大公约数为1。【例6.13】设计一个程序,求同时满足下列两个条件的分数X的个数:(1)1/6X1/5。(2)X的分子分母都是素数且分母是2位数。 【例6.14】汉诺(HANOI)塔问题。有3根柱子A、B、C,A上堆放了N个盘子,盘子大小不等,大的在下,小的在上,如图6-8所示。现在要求把这N个盘子从A搬到C,在搬动过程中可以借助B作为中转,每次只允许搬动一个盘子,且在移动过程中在3根柱子上都保持大盘在下,小盘在上。要求打印出移动的步骤。 A B C
您可能关注的文档
- cyl&za光合作用解答.ppt
- CYP2C19基因多态性解答.ppt
- cyu麦琪的礼物(七)343解答.ppt
- c第三章消费者行为理论2010-3-23解答.ppt
- C第三章组和逻辑电路解答.ppt
- C颅脑损伤解答.ppt
- C语言(第3章_循环结构)解答.ppt
- c语言(循环结构)解答.ppt
- c语言编译预处理解答.ppt
- C语言常见排序算法解答.ppt
- 301115_2024_#ESG_联检科技_2024年度环境、社会和治理(ESG)报告_2025-04-29.pdf
- 300308_2024_#ESG_中际旭创_2024年环境、社会及公司治理(ESG)报告_2025-04-21.pdf
- 想生科技产品注册公告及所需文件상생기술제품_등록_공고문_및_제출_서류.pdf
- 300760_2024_#SD_迈瑞医疗_2024年度可持续发展报告_2025-04-29.pdf
- 300870_2024_#SD_欧陆通_欧陆通2024年可持续发展报告_2025-04-22.pdf
- 301369_2024_#ESG_联动科技_2024年度环境、社会与公司治理(ESG)报告_2025-04-18.pdf
- 300937_2024_#SD_药易购_2024年度可持续发展报告_2025-04-25.pdf
- 300621_2024_#ESG_维业股份_维业股份:2024年度环境、社会和公司治理(ESG)报告_2025-04-19.pdf
- 300428_2024_#SD_立中集团_立中四通轻合金集团股份有限公司2024年度可持续发展报告-中文版_2025-04-21.pdf
- 301167_2024_#ESG_建研设计_2024年度环境、社会及公司治理(ESG)报告_2025-04-04.pdf
最近下载
- 2024年航空机务基础维修执照(起落架装置)专业技术知识考试题(带答案).pdf VIP
- 2025江苏南通高新区(近海镇)公办幼儿园秋季编外教职工招聘8人笔试备考试题及答案解析.docx VIP
- 英语单元整体教学设计.ppt VIP
- 第5章 拍摄与制作抖音短视频.pptx VIP
- 英剧剧本神探夏洛克台词本中英文对照精排版第一季第一集.pdf VIP
- 硫酸装置操作规程2018.7.29修改版.docx VIP
- 基于义务教育课程标准的(人教2024版)七年级地理上册内容解读 课件(新教材).pdf VIP
- 8.21-浙江省A9协作体暑假返校联考试题及答案2024年8月浙江省A9协作体暑假返校联考(扫描版) 1.docx VIP
- 2024年贵州省贵阳市云岩区延安中路街道招聘社区工作者真题及参考答案详解.docx VIP
- 航空机务基础维修执照专业知识考试题库(完整版).docx VIP
文档评论(0)