第八章课件 C的程序设计(第三版) 谭浩强 著.ppt

第八章课件 C的程序设计(第三版) 谭浩强 著.ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章课件 C的程序设计(第三版) 谭浩强 著

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 思考:用函数编程的好处 定义的时候又用到本身的定义 * * * * * * * * * * * * * * * 不作要求 * auto变量 函数内部无static声明的局部变量均为动态存储类别,被分配在动态区 。 存储类别为自动时,声明符auto可省;自动变量被 分配在动态区,未赋初值时,其值未定义,每次调用重新赋值。 C语言程序设计 第八章 函数 例如: int f(int a) /*定义f函数,a为形参*/ {auto int b,c=3; /*定义b、c为自动变量*/ … } 又如:auto int b,c=3; int b,c=3; /*两者等价*/ C语言程序设计 第八章 函数 例 auto 变量的作用域 main() { int x=1; void prt(void); { int x=3; prt(); printf(“2nd x=%d\n”,x); } printf(“1st x=%d\n”,x); } void prt(void) { int x=5; printf(“3th x=%d\n”,x); } 运行结果: 3th x=5 2nd x=3 1st x=1 x=1作用域 x=1作用域 x=3作用域 x=5作用域 用static声明局部变量 若希望函数调用结束后,局部变量的值保留,则指定该变量为静态局部变量,用static对变量加以声明。 C语言程序设计 第八章 函数 例 局部静态变量值具有可继承性 main() { void increment(void); increment(); increment(); increment(); } void increment(void) { int x=0; x++; printf(“%d\n”,x); } 运行结果:1 1 1 main() { void increment(void); increment(); increment(); increment(); } void increment(void) { static int x=0; x++; printf(“%d\n”,x); } 运行结果:1 2 3 C语言程序设计 第八章 函数 例8.17 考察静态局部变量的值 #include stdio.h void main( ) { int f(int) ; int a=2, i; for(i=0; i3; i++) printf(“%d ”, f(a)); } int f(int a) { auto b=0; static c=3; b=b+1; c=c+1; return(a + b + c); } main( ) i a f(a) 0 2 f(2) 1 2 f(2) 2 2 f(2) f(a) a b c return(a+b+c) 2 0 3 1 4 return(7) 2 0 4 1 5 return(8) 2 0 5 1 6 return(9) 运行结果:7 8 9 对静态局部变量的说明: ⑴分配在静态

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档