C语言第10章函数II.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 自动变量和寄存器变量属于动态存储方式, 外部变量和静态变量属于静态存储方式。 单击此处编辑母版标题样式 单击此处编辑母版副标题样式 函数-II 回顾 函数的结构包括:返回值类型、函数名、参数列表、函数体 函数原型说明以便向编译器指出该函数使用什么样的格式和语法 函数调用时程序控制流将转向被调函数,被调函数执行结束时,控制流返回主调函数 return 语句用于向调用函数返回值 目标 理解变量的作用域 理解变量的存储类型 理解两种参数传递的方式:传值、传地址 熟悉带参函数的调用 熟练使用数组作为函数参数 变量的作用域 作用域是某些事物起作用或有效的区域。 限于陆地 限于海洋 限于空中 全局变量 全局变量:也称为外部变量,它是在函数外部定义的变量。 它的作用域是整个源程序。 它不属于哪一个函数,它属于一个源程序文件。 int a,b; /*全局变量*/ void f1() /*函数f1*/ { …… } float x,y; /*全局变量*/ int fz() /*函数fz*/ { …… } main() /*主函数*/ { …… } 此时,全局变量a,b,x,y可以在函数f1、f2、及主函数中使用 全局变量 全局变量需注意以下几点: 1.外部变量定义必须在所有的函数之外,且只能定义一次。 2. 外部变量可加强函数模块之间的数据联系, 但是又使函数要依赖这些变量,因而使得函数的独立性降低。 3. 在同一源文件中,允许全局变量和局部变量同名。在局部变量的作用域内,全局变量不起作用。 局部变量 局部变量:在函数内作定义说明的。其作用范围仅限于该函数内, 离开该函数后再使用这种变量是非法的。 int f1 ( int a ) /*函数f1*/ { int b,c; …… } // a,b,c 作用域 Int f2 ( int x ) /*函数f2*/ { int y,z; } // x,y,z 作用域 main() { int m,n; } // m,n 作用域 局部变量 局部变量需注意以下几点: 主函数中定义的变量也只能在主函数中使用,不能在其它 函数中使用。 2. 形参变量是属于被调函数的局部变量,实参变量是属于主 调函数的局部变量。 3. 允许在不同的函数中使用相同的变量名,它们代表不同的 对象,分配不同的单元,互不干扰,也不会发生混淆。 4. 在复合语句中也可定义变量,其作用域只在复合语句范围 内。 局部变量实例 #include stdio.h void stup() { int a=3,b=4; printf(函数stup()的局部变量a,b\n %d %d\n,a,b); } void main() { int a=1,b=2; { int a=7,b=9; printf(复合语句中的局部变量a,b\n %d %d\n,a,b); } printf(函数main()的局部变量a,b\n %d %d\n,a,b); stup(); } 函数stup()的局部变量 函数 main()的局部变量 复合语句中的局部变量 存储类型 变量的存储方式可分为“静态存储”和“动态存储”两种 静态存储变量是一直存在的,而动态存储变量则时而存在时而消失 这种由于变量存储方式不同而产生的特性称为变量的生存期 生存期表示了变量存在的时间 存储类型 存储类型 说明 auto 自动变量 局部变量在缺省存储类型的情况下归为自动变量。 register 寄存器变量 存放在CPU的寄存器中。对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。 static 静态变量 在程序执行时存在,并且只要整个程序在运行,就可以继续访问该变量。 extern 外部变量 作用域是整个程序,包含该程序的各个文件。生存期非常长,它在该程序运行结束后,才释放内存。 静态局部变量 静态局部变量生存期为整个源程序 静态局部变量作用域与自动变量相同,即只能在定义该变量的函数内使用该变量 对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值 函数被调用时,其中的静态局部变量的值将保留前次被调用的结果 静态局部变量示例 void format() { static int m = 0; m++; if (m % 10 == 0) putchar(\n); else putchar( ); } void main() { int i; for(i=0;i50;i++) { printf(%d,i); format(); } }

文档评论(0)

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

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

1亿VIP精品文档

相关文档