- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 函数 本章要点 6.1 字符串处理 6.2 歌德巴赫猜想 6.3 整数的阶乘 6.4 同 名 异 值 习题 6 6.1 字符串处理 6.1 字符串处理 6.1 字符串处理 6.1 字符串处理 6.1 字符串处理 6.1 字符串处理 6.1 字符串处理 6.1 字符串处理 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.2 歌德巴赫猜想 6.3 整数的阶乘 6.3 整数的阶乘 6.3 整数的阶乘 6.3 整数的阶乘 6.3 整数的阶乘 6.3 整数的阶乘 6.3 整数的阶乘 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 6.4 同 名 异 值 程序中定义的两个i是不同作用域的变量,在函数开头部分声明的是函数级的局部变量,它对于函数全程都是可见的。 在for循环的复合语句中定义的是语句块级局部变量,它仅对复合语句内部有效,在退出复合语句时,该变量的存储空间被释放。如果语句块级的变量与函数级变量同名,则以语句块级的变量优先。 2.全局变量 全局变量是定义在所有函数之外的变量,可以为本程序中的所有函数所共享。 全局变量从变量的定义开始,到程序文件结束,变量一直有效。在一个函数内作变量所作的改变,将影响其他函数中该变量的值。但需要注意的是,如果定义了与全局变量同名的局部变量,则局部变量优先。 下面的代码用于说明全局变量的作用域。 /* 全局变量的作用域 */ #include stdio.h“ int s=1; /* 定义全局变量s */ void f1(); void f2(); main( ) { printf( 全局变量的作用域 \n\n); printf(在main( )函数中,s=%d\n,s); /* 使用全局变量s*/ s++; /* 改变全局变量s*/ f1(); /* 调用函数f1()*/ f2(); /* 调用函数f2()*/ } void f1() { int s=10; printf(在f1()函数中,s=%d\n,s); /* 使用局部变量s*/ s++; /* 改变局部变量s*/ } void f2() { printf(在f2()函数中,s=%d\n,s); /* 使用全局变量s*/ } 程序运行结果如图6-14所示。 图6-14 全局变量的作用域 从图中可以看到,因为全局变量s在程序中一直存在,因此在main函数中的改变(s++)会在函数f2( )中继续保留。 当全局变量与局部变量同名时,程序将对其分别处理,以局部变量优先。在局部变量的作用域内,全局变量被屏蔽,因此在函数f1( )中的变量s不会被全局变量影响,也不会影响全局变量。在退出局部变量的作用域后,全局变量继续有效。 引入全局变量的目的是为了函数间相互通信,但也极易造成程序的混乱,例如,在某个函数内部引用时发生了错误,则全局范围内,变量都受到影响,且不易找出错误,因此要慎用。 6.4.2 变量的存储类型 除了变量的作用域外,C语言中还提供了变量的存储类型来对变量作用域进行说明。各种变量的作用域不同,就其本质来说是因变量的存储类型不同。对一个变量的说明,不仅应说明其数据类型,还应说明其存储类型。 在C语言中,变量的存储类型分为静态存储和动态存储两大类。对变量的存储类型说明有以下四种:自动变量(auto)、寄存器变量(register)、外部变量(extem)和静态变量(static)。自动变量和寄存器变量属于动态存储方式,外部变量和静态内部变量属于静态存储方式。 静态存储变量通常是在变量定义时,就分配存储单元并一直保持不变,直至整个程序结束。 静态变量定义格式如下: static 数据类型 变量名; 静态变量是一种比较特殊的变量。从定义开始,一直保留其存储空间,供其在调用时使用,直到程序结束。 同静态变量相比,局部变量在离开作用域时释放其存储空间,再次进入同一作用域时会重新定义,重新分配存储空间。 静态变量是存放在固定存储空间中的变量。静态变量在退出其作用域时,依然保留其存储空间,并在下一次进入时,继续使用。 静态内部变量属于静态存储。在程序执行过程
您可能关注的文档
- C语言程序设计教程 作者 陈宝贤 第13章文件.ppt
- C语言程序设计教程 作者 陈宝贤 第14章 位运算.PPT
- C语言程序设计教程 作者 李丽娟 第3章程序的简单算法制定.ppt
- C语言程序设计教程 作者 李丽娟 第4章分支语句.ppt
- C语言程序设计教程 作者 李丽娟 第5章循环结构.ppt
- C语言程序设计教程 作者 李丽娟 第6章函数与宏定义.ppt
- C语言程序设计教程 作者 李丽娟 第8章指针.ppt
- C语言程序设计教程 作者 李玲1 第1章.ppt
- C语言程序设计教程 作者 李玲1 第2章.ppt
- C语言程序设计教程 作者 李玲1 第3章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第7章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第8章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第9章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第0章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第2章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第4章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第5章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第6章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第7章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第9章.ppt
最近下载
- DB 14T 2122—2020地质灾害调查规范.pdf VIP
- 高速铁路的养护维修—高铁精密测量控制网.pptx
- 俄语学法指导八年级全一册答案.doc VIP
- 4.6线段的垂直平分线(第1课时线段垂直平分线的性质定理及逆定理)(教学课件)-2025-2026学年八年级数学上册(湘教版2024).pptx
- 卫星互联网行业报告:卫星互联网建设与应用.pptx VIP
- 石油和天然气开采钻井井场设备设施安全事故隐患排查清单.pdf VIP
- 09SMS202-1埋地矩形雨水管道及其附属构筑物(混凝土模块砌体)清晰版建筑工程图集 .docx VIP
- ..物质由微观粒子构成.资料.ppt
- TGSS型水平刮板输送机.doc VIP
- 医学ppt--肥胖心血管疾病.ppt VIP
文档评论(0)