第8章 函数(二).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文档。上传文档
查看更多
第8章 函数(二)

第8章 函数(二) §8-1 函数间的参数传递 §8-2 函数的嵌套调用与递归函数 §8-3 指针型函数与指向函数的指针 §8-4 命令行参数 §8-4 函数间的参数传递 8.4.1 一般数据 注意: 形参是内部数据——在未出现函数调用时并不占内存,每次调用时分配空间,接收实参值函数结束时释放。 形参与实参的类型相同或赋值兼容(以形参为准) 形参必须为变量,实参可为变量、常量或表达式 传递方式: C语言规定:实参对形参变量的数据传递是“值传递”,即单向传递,只由实参传递给形参,但是作为复制的数据却可分为两种——数据和地址,因为复制地址可以使主调函数的内存发生变化,因此,有时把地址传递方式说成双向数据传递。 §8-4 函数间的数据传递 数值传递 形参为变量名,实参没有要求 被调用函数不能改变主调函数的内存。 §8-4 函数间的数据传递 地址传递 实参的值为地址,复制给形参的是地址,而形参无论以什么形式出现,实质都是指针变量,可以改变主调函数内存。 采用地址传递的目的(1)改变主调函数内存(2)传递数据量大 形参为指针变量,实参为某变量的地址 §8-4 函数间的数据传递 地址传递 实参的值为地址,形参为指针,并不一定能改变主调函数的内存。 §8-4 函数间的数据传递 地址传递 实参的值为地址,形参为指针,并不一定能改变主调函数的内存。 §8-4 函数间的数据传递 地址传递 实参的值为地址,形参为二级指针,才能改变主调函数的内存。 §8-4 函数间的数据传递 8.4.2 数组在函数间的传递 形参为数组名,实参为数组的地址 §8-4 函数间的数据传递 8.4.2 数组在函数间的传递 形参为指针变量,实参为数组的地址 §8-4 函数间的数据传递 §8-4 函数间的数据传递 §8-4 函数间的数据传递 地址传递(二维数组的传递) 形参为指针变量,实参为二维数组的地址,无论形参的形式如何均为行指针 §8-4 函数间的数据传递 地址传递(指针数组的传递) 形参为指针数组,实质为二级指针 §8-2 函数的嵌套调用与递归函数 8.2.1 函数的嵌套调用 定义不允许嵌套 调用可以嵌套 §8-2 函数的嵌套调用与递归函数 8.2.2 递归函数 递归函数是指直接或间接地调用自己的函数,递归分成两部分: §8-2 函数的嵌套调用与递归函数 用递归解决问题的一般步骤: 决定递归结束的条件; 决定递归的执行部分。 §8-2 函数的嵌套调用与递归函数 5个人,问第5个人年龄,比第4个人大2岁,4比3大2,3比2大2, 2比1大2。第1个人10岁,求第5个人多大? §8-3 指针型函数与指向函数的指针 8.3.1 指针型函数 返回值的类型是地址 格式:[存储类型] 数据类型 *函名(形参) 说明: 在程序中不要使用数组名接收指针型函数的返回值 不指把在它内部说明的具有局部寿命的数据地址作返值 static型或全局数组等 §8-3 指针型函数与指向函数的指针 8.3.2 指向函数的指针 格式:[存储类型] 数据类型 (*指针名)(); 说明: 括号必不可少(*p)并不固定指哪一个函数,专门存放函数入口地址 对指针赋值,不需给出参数,调用时(*p)后加实参 p=max; p=average; 函数的调用既可通过函名,亦可通过*p函数指针 c=max(a,10); c=(*p)(a,10); p+n无意义 §8-3 指针型函数与指向函数的指针 #include conio.h int add(int m,int n) { return(m+n); } int sub(int m,int n) { return(m-n); } int mul(int m,int n) { return(m*n); } int div(int m,int n) { return(m/n); } int fun(int x,int y,int (*p)()) { return((*p)(x,y)); } §8-4 命令行参数 main函数可以有参数,指针数组的一个重要应用是作为main函数的形参。 main函数的参数,跟在调用命令后,由操作系统传递给主函数,这种机制叫命令行参数。 8.4.1 命令行的一般形式 命令行的一般形式为: 命令名 参数1 参数2 ...... 参数n 命令名和各参数间用空格分隔。 §8-4 命令行参数 8.4.2 C语言如何看待命令行 C语言将命令行看作由空格分隔的若干字符串,每个字符串看作是一个命令行参数。由第一个字符串(命令本身)开始从0编号。程序执行时,每个参数被处理作字符串,在程

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档