C语言教学 第10章.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文档。上传文档
查看更多
C语言教学 第10章

局部变量与全局变量 变量的存储类别 10.1.1 局部变量 10.1.2 全局变量 10.1.1 局部变量 局部变量就是在函数内部或者块内定义的变量。局部变量只在它的函数内部或块内部有效; 例如: int func(int a,int b) /*函数func1*/ { double x,y; …… } main() { int m,n; …… } 变量a,b,x,y只在func函数内有效 变量m,n只在main函数内有效 10.1.1 局部变量 说明: ⑴ 主函数main中定义的变量(m,n)也只在主函数中有效,并不是因为在主函数中定义而在整个文件或程序中有效。因为主函数也是一个函数,它与其它函数是平行关系。 ⑵ 不同函数中可以使用相同的变量名,它们代表不同的变量,之间互不干扰。 ⑶ 在一个函数内部,还可以在复合语句(块)中定义变量,这些变量只在本复合语句中有效。 10.1.1 局部变量 说明: ⑷ 如果局部变量的有效范围有重叠,则有效范围小的优先 ,如: void main() { int a,b,c; …… { int c; c=a+b; …… } } 局部变量c优先 a,b,c在此范围有效 范例10-1 10.1.2 全局变量 在函数之外定义的变量称为全局变量,又称外部变量 。 例如: int a=2,b=5; /*全局变量*/ int f1() /*定义函数f1*/ { ...... } double c,d; /*全局变量*/ void f2() /*定义函数f2*/ { ...... } main() /*主函数*/ { ...... } int e,d; /*全局变量*/ e,f的作用域 c、 d 的作用域 a、 b 的作用域 范例10-2 10.1.2 全局变量 注 意:当局部变量与全局变量同名时,在局部变量的作用范围内,全局变量不起作用,即局部变量优先。 在实际使用过程中,建议不在必要时不要使用全局变量。 范例10-3 10.2.1 自动类型(auto) 10.2.2 寄存器类型(register) 10.2.2 静态类型(static) 10.2.2 外部类型(extern) 10.2.1 自动类型(auto) 自动类型关键字:auto。其一般形式为: auto 类型 变量名; 例如: int func1(int a) { auto int b,c=3; …… } 10.2.2 寄存器类型(register) 寄存器类型变量的存储单元被分配在寄存器当中,用关键字register说明,其一般形式为: register 类型 变量名; 例如:register int a; 注意: ⑴ 寄存器类型的变量不宜过多; ⑵ 变量的长度应该与通用寄存器的长度相当,一般为int型或char型; ⑶ 寄存器变量的定义通常是不必要的。 范例10-4 10.2.3 静态类型(static) 静态类型的变量占用静态存储区,用static关键字来说明,其一般形式为: static 类型 变量名; 例如:static int a; 静态类型又分为静态局部变量和静态全局变量。 10.2.3 静态类型(static) 1、静态局部变量 定义在函数内的静态变量称为静态局部变量。 说明: ⑴ 静态局部变量的生存期是整个程序的运行期间; ⑵ 静态局部变量具有局部变量的性质,即其作用域是局限在定义它的本函数体内的,但其值仍然存在,因为存储空间并未释放。 ⑶ 静态局部变量的赋初值的时间是在编译阶段,并且只被赋初值一次,即使它所有的函数调用结束,也不释放存储单元。 [范例10-5]打印1到5的阶乘 10.2.3 静态类型(static) 2、静态全局变量 在定义全局变量时前面加上关键字static,就是静态全局变量。 静态全局变量的特点是: ⑴ 其作用范围(即作用域)是定义它的程序文件,而不是整个程序; ⑵ 静态全局变量的生存期是整个程序运行期间; ⑶ 使用静态全局变量的好处是同一程序的两个不同的源程序文件中可以使用相同名称的变量名,而互不干扰。 范例10-6 10.2.4 外部类型(extern) 在任何函数之外定义的变量都叫做外部变量。外部变量通常用关键字extern说明。其一般形式为: extern 类型 变量名; 例如:extern int a; extern double k; 在一个文

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档