- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2、外部变量(全局变量): 全局变量是在函数之外定义的变量,它的有效范围是从定义它的地方开始,到整个程序结束的任何地方。 它不属于任何一个函数 可以本作用域内所有函数引用 #include stdio.h int a=3, b=5; /*定义全局变量a,b*/ main( ) { void fun( ); printf( a= %d , b=%d \n , a, b); fun ( ); printf( a= %d , b=%d \n , a, b);} void fun (void) {int c ; c=a; a=b; b=c;} 例 外部变量与局部变量同名 #include stdio.h int a=3,b=5; /* a,b为外部变量*/ a,b作用范围 void main ( ) { int a=8; /*a为局部变量 */ 局部变量a作用范围 printf (″%d″, max (a,b)); 全局变量b的作用范围 } max (int a, int b) /*a,b为局部变量 */ { int c; c=a>b?a∶b; 形参a、b作用范围 return (c); } 运行结果为 8 #include stdio.h int a=3, b=5; /*定义全局变量a,b */ main( ) { void fun( ); int a=3, b=5; /*定义内部变量a,b */ printf( a= %d , b=%d \n , a, b); fun ( ); printf( a= %d , b=%d \n , a, b);} void fun (void) {int c ; c=a; a=b; b=c;} int a=3,b=5; /*定义全局变量a,b */ int max(int a,int b) {int c; c=ab?a:b; return(c); } main() { int a=8; /*定义内部变量a */ printf(“%d”,max(a,b));} 建议:不必要时不要使用全局变量,原因如下: ① 全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。 ② 使用全局变量过多,会降低程序的清晰性。在各个函数执行时都可能改变外部变量的值,程序容易出错。因此,要限制使用全局变量。 说明: 同一源文件中,全局变量可以和局部变量同名,局部变量作用范围内,全局变量被屏蔽,不起作用。 void num() { extern int x,y; //全局变量扩展申明 int a=15,b=10; /*定义内部变量a */ x=a-b; y=a+b; } int x,y; /*定义全局变量x,y */ main() {int a=7,b=5; /*定义内部变量a */ x=a+b; y=a-b; printf(“%d,%d\n”,x,y); num(); printf(“%d,%d\n”,x,y); } 动态存储方式与静态存储方式 从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量。 从变量值存在的时间角度来分,又可以分为静态存储方式和动态存储方式。 静态存储方式:指在程序运行期间由系统分配固定的存储空间的方式。 动态存储方式:则是在程序运行期间根据需要进行动态的分配存储空间的方式。 7.9 变量的存储属性 变量和函数有两个属性:数据类型和数据的存储类别。存储类别指的是数据在内存中存储的方式。 存储方式分为两大类:静态存储类和动态存储类。包含: 自动的(auto); 静态的(static); 寄存器的(register); 外部的(extern)。 根据变量的存储类别,可以知道变量的作用域和生存期。 auto自动变量 自动变量auto:不专门声明为static存储类别的局部变量都是动态分配存储空间,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。因此这类局部变量称为自动变量。 函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类。 自动变量用关键字auto作存储类别的声明。 例如: int f(int a) /*定义f函数,a为形参 */ {auto
您可能关注的文档
- 部分企管幻灯片.ppt
- 高等传热学课件对流部分chap2-R幻灯片.ppt
- 高等代数幻灯片.ppt
- 高等代数课件北大三版--第八章节欧氏空间课件幻灯片.ppt
- 高等代数中概念幻灯片.ppt
- 高等代数中概念实例定理的内涵背景与应用幻灯片.ppt
- 高等工程热力学幻灯片.ppt
- 部分相关课件--汽车保险与理赔幻灯片.ppt
- 高等工程热力学之绪论第一章节幻灯片.ppt
- 部分重点高校结构工程论文的初步统计分析科学网幻灯片.ppt
- 年产2万吨调味品精深加工项目可行性研究报告模板-备案拿地.doc
- 年产3万吨高性能湿法锂电池聚乙烯隔膜项目可行性研究报告模板-申批备案.doc
- 年产3亿只速冻小笼包项目可行性研究报告模板拿地备案用.doc
- 年产5万吨硅碳负极材料项目可行性研究报告模板-备案拿地.doc
- 年产5亿颗纽扣电池生产建设项目可行性研究报告模板-申批备案.doc
- 年产10万吨废纸制浆和8万吨生活纸项目可行性研究报告模板-备案拿地.doc
- 年产10万吨无菌冷灌饮料项目可行性研究报告模板-立项申报用.doc
- 年产10亿元预制菜产业园项目可行性研究报告模板-申批立项.doc
- 年产15万吨环保型生物药肥、20万吨硫酸铵挤压颗粒项目可行性研究报告模板拿地申报.doc
- 年产18万吨氯化锰车间项目可行性研究报告模板-立项申报用.doc
文档评论(0)