- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
全局变量的说明符为extern。全局变量也称为外部变量,它一旦定义,即可在相应的函数内直接使用,而不需要再去定义。例如:inta,b;/*外部变量*/intf(){……}main()/*主函数*{……}在本例中,a、b既是全局变量,那么在f函数、main函数中都可直接使用。7.6.2全局变量*例7.9:求两数之中最大的数字。inta=1,b=2;/*a,b为外部变量*/max(inta,intb)/*a,b为局部变量*/{intc;c=ab?a:b;return(c);}main(){inta=3;printf(%d\n,max(a,b));}在一个源文件中如果外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,以局部变量为准。*7.7变量与函数的存储分类C语言中变量定义的完整形式是:存储类别数据类型变量名;存储类别由“[]”括起,表示该项不是必须的,是可选部分。用于指定存储类别的关键字包括:static:静态的,表示所定义的变量是静态变量;auto:自动的,表示所定义的变量是自动(动态)变量;resgiter:寄存器的,表示该变量地址不在内存,而是分配到寄存器中。7.7.1变量的存储分类*变量的存储类别决定了变量的生存期,即变量的值何时存在。从变量值存在的时间角度来看,可以将变量分为两大类:静态变量和动态变量。1、静态变量(关键字static)静态变量是在编译时分配存储空间,所占存储单元直到程序结束时才释放,它的值在程序运行过程中一直存在。且变量的初始化只进行一次。*静态变量包括:(1)全局变量:全局变量总是静态分配的,不能使用auto、resgister关键字定义全局变量;关键字static用于全局变量定义时,具有特定含义:将限制该变量只在当前文件有效,不能被其它文件访问。(2)局部变量:省略变量存储类别时,局部变量默认情况下为auto类型,存储在动态存储区中。用static关键字可以定义一种特殊的局部变量——静态局部变量,指定将局部变量分配在静态存储区中。*例7.10分析以下程序运行后的输出结果:fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i3;i++)printf(“%d%d”,i,fun(a));}*第几次调用调用时初值调用结束时的值abcabc函数值第1次调用50351410第2次调用50451511第3次调用50551612通过对fun函数的分析可知:当函数执行结束后,局部静态变量所占存储单元并不释放,并保留变量的值,当再次调用该函数时,不再执行初始化语句。*2.自动变量(动态变量)指存储类别为auto的变量。自动变量的存储空间是当程序执行到定义它的函数或语句块时才分配的,当函数执行结束后自动释放,变量的值也就不再存在。每次调用函数时系统自动分配存储空间,并重执行初始化语句。对于没指定初值的局部变量,编译程序不作任何处理。省略变量的存储类别说明时,局部变量的存储类别默认为auto,因此,auto关键字经常省略不写。自动变量包括:形式参数,函数内定义的变量(未使用static),语句块内定义的变量。*3.寄存器变量采用resgister关键字定义的变量也是一种局部变量,只不过该变量的地址不在内存而是在寄存器中。由于寄存器的存取速度远大于内存的存取速度,一般将循环变量等访问频率较高的变量指定为寄存器类型,以提高程序执行速度。*1、用extern说明函数我们可以在函数的返回值类型前面加extern来说明函数,使用extern说明的函数称为外部函数。例如:externintfun(){ ……………}extern可以缺省,我们以前定义的函数都属于外部函数。外部函数可以被其他编译单位内的函数调用。如果在其他编译单位需要调用该函数
您可能关注的文档
- 《C语言程序设计》教学课件合集(共12章)非AI生成.pptx
- 《C语言程序设计》教学课件合集(共8章)非AI生成.pptx
- 《C语言程序设计》教学课件合集(共8章)非AI生成 (2).pptx
- 《地理信息系统GIS》教学课件合集(共9章)非AI生成.pptx
- 《环境监测技术》教学课件合集(共5章)非AI生成.pptx
- 《C语言程序设计》第2章 C语言的基础知识-教学课件(非AI生成).ppt
- 《C语言程序设计》第2章 C语言基础-教学课件(非AI生成).ppt
- 《C语言程序设计》第2章 数据类型、运算符与表达式-教学课件(非AI生成).ppt
- 《C语言程序设计》第3章 简单语句与顺序结构程序-教学课件(非AI生成).ppt
- 《C语言程序设计》第3章 顺序结构程序设计-教学课件(非AI生成).ppt
- 《C语言程序设计》第8章 指针 (2)-教学课件(非AI生成).ppt
- 《C语言程序设计》第8章 指针-教学课件(非AI生成).ppt
- 《C语言程序设计》第9章 预编译处理-教学课件(非AI生成).ppt
- 《C语言程序设计》第10章 结构体与共用体-教学课件(非AI生成).ppt
- 《C语言程序设计》第11章 位运算-教学课件(非AI生成).ppt
- 《C语言程序设计》第12章 文件-教学课件(非AI生成).ppt
- 《茶文化》第2章 茶的起源与发展2-教学课件(非AI生成).ppt
- 《茶文化》中华茶文化总结-教学课件(非AI生成).ppt
- 《地理信息系统GIS》第1章概论-教学课件(非AI生成).ppt
- 《地理信息系统GIS》第2章 空间信息基础1-教学课件(非AI生成).ppt
文档评论(0)