版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第8章,函数编号,2,第8章函数,1,概述2,函数定义的一般形式3,函数参数和函数值4,函数调用5,函数嵌套调用6,函数递归调用7,数组作为函数参数8,局部变量和全局变量,主要内容,3,1,概述,C程序结构,4,C程序可以由其他函数组成,被主函数调用。其他函数可以相互调用。同一个函数可以被一个或多个函数调用任意多次。第8章函数,基本概念,分类,从用户使用的角度:标准函数和用户定义函数从函数的形式:非参数函数和参数函数,5,(1),例子(2),函数定义,第8章函数,2,函数定义的一般形式,6,(1),例子,先看函数使用的例子,(用函数来判断两个数的最大值),main() int a,b,c;
2、c=最大值(a,b);打印(“最大值为%d”,c);int max(int x,int y)int z;如果(xy)z=x;否则z=y;返回(z);第8章函数,函数调用,函数定义,第7章,(2)函数定义,第8章函数,类型标识符函数名(参数列表)声明部分语句,int max(int x,int y)int z;如果(xy)z=x;否则z=y;返回(z);函数头、函数体、格式、int:函数类型max:函数名int x、int y:参数及其定义、声明部分:int z;解释函数内部使用的变量。声明部分:如果.解释函数return(z)返回函数的结果,8。(2)功能定义,第8章功能,1。函数的返回值是通
3、过函数中的return语句获得的。一个函数中可以有多个return语句。只有一个有效。2、返回(z);返回z;如果函数值的类型与返回语句中表达式的值不一致,则以函数类型为准。4.如果被调用的函数中没有返回语句,这通常意味着该函数完成了某些操作,并且没有返回任何值。5.为了清楚地表达“没有价值被带回来”,“无效”可以用来定义“没有类型”。函数的返回值,9,3,函数参数和函数值,函数参数形式参与实际参数,形式参数:定义函数时函数名后括号中的参数名:调用函数时函数名后括号中的显式表达式描述:(1)形式参数在调用函数前不占用内存;(2)调用函数时为参数分配内存;呼叫后,释放内存。(3)参数可以是常量、
4、变量或表达式。(4)在定义的函数中,必须引用形式参数的类型。(5)表单参与参数具有相同的类型和相同的数量。(6)如果形式参与参数的类型不一致,根据形式参数的类型自动转换(函数调用转换)。(7)参数对正式参与的参数执行“值转移”。(8)或返回表达式;注意:一个函数中可以有多个返回语句。如果函数类型与返回语句中表达式值的类型不一致,将自动转换为函数类型-函数调用转换函数返回值类型默认int类型函数没有返回值void类型,11,示例没有返回值函数void交换(int x,int y)int temp;temp=x。x=y。y=温度;print star()printf(* * * * * * * *
5、 *);main()int a;a=print star();printf(%d,a);void print star()printf(* * * * * * * * * *);main()int a;a=print star();printf(%d,a);是的。函数printstar()不表示该类型代表整数。在main()中,语句a=print star();执行函数调用,并返回随机整数,因为在定义函数时没有定义返回值。运行结果:* * * * * * * * * * * * 10是返回的随机整数。错误!以下信息将在编译期间显示:不能从void转换为int,例如,12。4.函数调用,格式,函
6、数名(参数列表),第8章函数,模式,1。函数语句printstar() 2。函数表达式c=a*max(a,b) 3。函数参数m=max (a,max (b,c),main () int a,b,c;c=最大值(a,b);打印(“最大值为%d”,c);函数调用,13,4,函数调用,实际参数和形式参数之间的关系,第8章函数,对应关系,对应于类型对应(相同类型或赋值兼容)的编号对应序列,转移关系,实际参数到形式参数值的转移(单向转移),14,4,函数调用,被调用函数的声明和原型,第8章函数,标准函数,使用外部函数。#include #include,用户定义函数,1。当函数定义出现在函数调用之后时,
7、在主音函数中,被调用的函数由函数原型声明。P153,2 .在下列情况下,函数声明是不必要的。函数定义出现在函数调用之前,但是函数类型正在成形。在所有函数定义之前,函数是在函数外声明的,所以没有必要在主音函数中声明被调用的函数。15,4,函数调用,例如,第8章函数,C(m,n)=m!/(n!*(m-n)!)(mn),主()浮子c;int m,n;浮点fac(int x);printf(“输入m,n :”);扫描频率(“%d% d”),输入m,n:5 3,结果为10.0,16,5。函数的嵌套调用。嵌套调用c规定函数定义不能嵌套,但是函数可以嵌套调用。例如,17,找出三个数中最大值和最小值之间的差,int dif(int x,int y,int z);int max(int x,int y,int z);int min(int x,int y,int z);void main() int a,b,c,d;scanf(%d%d%d,int dif(int x,int y,i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮油购销员诚信道德竞赛考核试卷含答案
- 基材人造板处理与饰面材料选配工岗前进阶考核试卷含答案
- 2026年新科教版初中七年级科学下册第三单元力的三要素应用卷含答案
- 薄膜加热器件制造工安全意识强化模拟考核试卷含答案
- 2026年新科教版初中九年级历史下册第三单元和平发展时代卷含答案
- 2026年新科教版初中八年级语文上册第一单元新闻语言特点分析卷含答案
- 涂料涂覆工操作评估水平考核试卷含答案
- 矿山测量员操作能力水平考核试卷含答案
- 2026年人教版初中七年级语文下册期末综合练习卷含答案
- 钽电解电容器赋能、被膜工岗前活动策划考核试卷含答案
- 证据法学-典型案例分析
- 2022年一级注册建筑师考试《建筑材料与构造》真题及答案解析
- 问卷的分析与调研报告
- 滴水实验 说课课件
- 小型液压机液压系统设计
- 玉米的综合利用玉米皮的综合利用
- GB/T 4450-1995船用盲板钢法兰
- 汽轮机TSI系统详解
- 建档立卡-退役军人信息登记表(基础电子档案)
- (部编版)统编四年级语文下册第六单元《习作:我学会了-》教学课件
- 除尘器拆除方案
评论
0/150
提交评论