c语言程序设计课件第6章090924.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语言程序设计课件第6章090924

C语言程序设计 第六章 函数 内容提要 函数是组成C程序的基本单位 用户自定义函数的定义、调用、声明 用户自定义函数的定义,形参的不同类型,正确设定 函数调用的正确形式,尤其是实在参数与形参的对应 函数声明的必要性,正确形式 递归函数的定义与调用,递归的条件 函数的定义与调用举例,以对比方式将已学算法定义为函数并调用:判断质数、求最大公约数、查找、排序等 由函数引出的变量存储类别问题,不同存储类别的变量其作用域与生命期: 自动局部变量、静态局部变量、外部变量、寄存器变量 动态空间的申请与释放,重点是动态一维数组及野指针 函数的定义与调用 内容回顾:函数是C程序的基本单位,在此前的例子中,程序中调用过scanf、printf、getchar、putchar、sqrt、rand、srand等函数,每一个程序也都必须定义一个main函数 函数分两类: 库函数:由编译器提供,供用户程序直接调用 用户自定义函数:用户按需要自己编写具有特定功能的函数 用户自定义函数的定义格式: 函数返回值类型 函数名([形参表]) { 一组语句 } 函数的定义与调用 函数调用的形式: 函数名(实参表); 函数定义之后如果不被调用,在程序中不起作用.形式参数的值是在函数调用之初由实参赋给的. 函数的定义与调用举例: 程序6.1 对数组的元素累计求和。(下面的代码只有主函数) #includestdio.h int main( ) //对数组元素累计求和 { int a[6]={10,11,12,13,14,15}, i,s=0; for(i=0;i6;i++) s=s+a[i]; printf(“sum=%d\n”,s); //输出和值 return 0; } 函数的定义与调用 定义一个函数的目的:使该函数具有通用性,例如数组元素求和,应该能求任意数组的任意个元素之和. 因此,定义一个最关键要解决以下问题: (1)函数的功能是什么? (2)函数的参数有哪些,分别起什么作用? (3)函数是否需要返回值,返回什么样的值? 函数的定义与调用 因此,求和函数的定义形式如下: int Sum(int *pa,int n) //求数组pa前n个元素和 { int i,t=0; for(i=0;in;i++) //累计求和 t=t+pa[i]; return(t); //返回和值t } 该函数的调用语句形式为: s=Sum(a,6); //这里的实参变量都在主调函数中定义 具体的调用过程如何执行请看程序演示 函数的定义与调用 通过本例,总结函数调用过程中的3次赋值: (1)主调函数传递实参,以初始化的形式使被调函数的形参获得初值;(如果调用无参函数,则无此步) (2)被调函数在执行到return语句时,系统根据函数返回值类型创建一个该类型的临时变量,然后将return后的表达式的值赋值给此临时变量; (如果调用的是无返回值的函数,则无此步) (3)主调函数如果需要这个返回值,就从这个临时变量取值,然后临时变量被系统销毁。(如果主调函数以一个函数调用语句形式调用该函数不使用该返回值,则无此步) 函数的定义与调用 3次赋值中的类型一致性问题: 右值与左值类型一致赋值一定没有问题 右值与左值类型不一致时,右值类型自动转化为左值类型,某些情况下会信息丢失,回顾3.9节的(3) 例:(3次赋值中类型不一致时的正确性分析) 函数的定义与调用 函数的定义与调用 函数定义中需要强调的几个问题(下方演示例6.2): (1)函数的返回值类型缺省为int(不建议省略),如果该函数不需要返回值,则返回类型为void (2)当函数不需要提供形式参数时,形参表的一对括号不能省略,括号内或者为空或void (3)函数的每一个形参必须有单独的类型标识,形参之间逗号分隔,形参的值到调用时才能确定 (4)函数应当先定义后被调用,仅定义而不被调用,则函数在程序中不发挥作用,一个函数可调用多次 (5)return不仅能返回值,也使程序执行流程从被调函数返回到调用点 函数的定义与调用 对程序6.2思考下列问题:(建议在VC下直接修改) (1)该函数体中删除语句return ;对程序有无影响? (2)如果要求打印的*号个数由主调函数提供,Star函数需要做怎样的修改?函数调用语句改为? (3)如果要求打印的符号形态由主调函数提供,Star函数需要做怎样的修改?函数调用语句改为? (4)如果需要函数返回打印的符号的个数,Star函数需要做怎样的修改?函数调用语句改为? (5)如果将Star函数的定义放到main函数之后,编译时会有什

文档评论(0)

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

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

1亿VIP精品文档

相关文档