第7章 用函数实现模块化程序设计n.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11、有以下程序 #includestudio.h int fun() {static int x=1; x*=2; return x; main() {int I,s=1; for (i=1;i=2;i++) s=fun(); printf(”%d\n”,s);} 程序运行后的输出结果是 A)0 B)1 C) 4 D)8 C 12、有以下程序 #include stdio.h void fun(int p) { int d=2; p=d++; printf(“%d”,p);} main() { int a=1; fun(a); printf(“%d\n”,a);} 程序运行后的输出结果是 A)32 B)12 C)21 D)22 C 7.9.3 全局变量的存储类别 全局变量都是存放在静态存储区中的。因此它们的生存期是固定的,存在于程序的整个运行过程 一般来说,外部变量是在函数的外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。 1. 在同一个文件内扩展外部变量的作用域 外部变量有效的作用范围只限于定义处到本文件结束。 如果用关键字extern对某变量作“外部变量声明”,则可以从“声明”处起,合法地使用该外部变量 例7.18 调用函数,求3个整数中的大者。 解题思路:用extern声明外部变量,扩展外部变量在程序文件中的作用域。 #include stdio.h int main() { int max( ); extern int A,B,C; scanf(“%d %d %d”,A,B,C); printf(max is %d\n,max()); return 0; }? int A ,B ,C;? int max( ) { int m; m=AB?A:B; if (Cm) m=C; return(m); } 2. 将外部变量的作用域扩展到其他文件 如果一个程序包含两个文件,在两个文件中都要用到同一个外部变量Num,不能分别在两个文件中各自定义一个外部变量Num 应在任一个文件中定义外部变量Num,而在另一文件中用extern对Num作“外部变量声明” 在编译和连接时,系统会由此知道Num有“外部链接”,可以从别处找到已定义的外部变量Num,并将在另一文件中定义的外部变量num的作用域扩展到本文件 例7.19 给定b的值,输入a和m,求a*b和am的值。 解题思路: 分别编写两个文件模块,其中文件file1包含主函数,另一个文件file2包含求am的函数。 在file1文件中定义外部变量A,在file2中用extern声明外部变量A,把A的作用域扩展到file2文件。 文件file1.c: #include stdio.h int A; int main() { int power(int); int b=3,c,d,m; scanf(%d,%d,A,m); c=A*b; printf(%d*%d=%d\n,A,b,c); d=power(m); printf(%d**%d=%d\n,A,m,d); return 0; } 文件file2.c: extern A; int power(int n) { int i,y=1; for(i=1;i=n;i++) y*=A; return(y); } 编译和运行包括多个文件的程序,可参考《C程序设计学习辅导》一书的“C语言上机指南”部分 3.将外部变量的作用域限制在本文件中 有时在程序设计中希望某些外部变量只限于被本文件引用。这时可以在定义外部变量时加一个static声明。 file1.c static int A; int main ( ) { …… } file2.c extern A; void fun (int n) { …… A=A*n; …… } 只能用于本文件 本文件仍然不能用 说明: 不要误认为对外部变量加static声明后才采取静态存储方式,而不加static的是采取动态存储 声明局部变量的存储类型和声明全局变量的存储类型的含义是不同的 对于局部变量来说,声明存储类型的作用是指定变量存储的区域以及由此产生的生存期的问题,而对于全局变量来说,声明存储类型的作用是变量作用域的扩展问题 用static 声明一个变量的作用是: (1) 对局部

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档