第9章存储属性.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文档。上传文档
查看更多
第9章存储属性.ppt

【例9.5】 用extern声明本文件定义的外部变量来扩大外部变量的作用域。 #include stdio.h void main( ) { void swap( ); /* 函数声明 */ extern int x,y; /* 全局变量声明 */ printf(请输入x=?,y=?\n); scanf(x=%d,y=%d,x,y); swap( ); printf(x=%d,y=%d\n,x,y); } int x,y; void swap( ) { int t; t=x; x=y; y=t; return; } 程序运行情况: 请输入x=?,y=? x=6,y=8 x=8,y=6 【例9.6】 用extern声明其他文件的外部变量来扩大外部变量的作用域。 /* C 源程序文件D:\f1.c的内容 */ #include stdio.h #include D:\f2.c int x; /* 外部变量定义 */ void main( ) { int sum,y; printf(y=?\n); scanf(y=%d,y); store( ); sum=x+y; printf(sum=%d\n,sum); } /* C 源程序文件d:\f2.c的内容 */ extern int x; void store( ) { x=10; } 执行源程序文件D:\f1.c,程序运行情况如下: y=? y=20 sum=30 (3)用static声明外部变量 在程序设计中,某些外部变量只限于被本文件引用,而不能被其他文件引用。这时可以在定义外部变量时加一个static声明。 9.2 变量的作用域 【例9.6】 用extern声明其他文件的外部变量来扩大外部变量的作用域。 /* C 源程序文件D:\f1.c的内容 */ #include stdio.h #include D:\f2.c static int x; /* 外部变量定义 */ void main( ) { int sum,y; printf(y=?\n,y); scanf(y=%d,y); store( ); sum=x+y; printf(sum=%d\n,sum); } /* C 源程序文件d:\f2.c的内容 */ extern int x; void store( ) { x=10; } 执行源程序文件D:\f1.c,程序运行情况如下: y=? y=20 sum=30 (4)若在同一源文件中,局部变量与全局变量同名,则在局部变量的作用范围内,局部变量起作用,全局变量被屏蔽,不起作用。 9.2 变量的作用域 【例9.7】 外部变量与局部变量同名。 程序如下: #include stdio.h int a=4,b=5; int min(int a,int b) { int c; c=ab?a:b; return(c); } void main() { int a=8; printf(%d\n,min(a,b)); } 运行结果为 5 9.2 变量的作用域 请看习题二-2 【例9.8】 学生信息包括学号、姓名、四门课成绩,求出学生所学四门课的平均分、最高分和最低分。 #include stdio.h struct student /* 外部结构体类型定义*/ { int num; char name[10]; float score[4]; }; struct student st={101,Zhang,{89.5,98,78.5,66.5}}; float max,min; (5)全局变量增加了数据间联系的渠道。 float average( ) { int i; float ave,sum=0; for(i=0;i4;i++) { sum=sum+st.score[i]; if(st.score[i]max) max=st.score[i]; if(st.score[i]min) min=st.score[i]; } ave=sum/4; return(ave); } void main( ) { float aver; max=min=st.score[0]; aver=average

文档评论(0)

zhoujiahao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档