


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、函数的定义和调用7.2函数定义函数定义的一般形式:类型标识符 函数名(形式参数表列) 函数定义函数首部不要以分号结尾说明部分执行部分例:int max(int a,int b) /*函数首部*/ 类型标识符函数名形式参数表列 /*函数体开始*/int z; /*说明部分*/ if(ab)z=a; /*执行部分*/ else z=b; return(z);说明:函数定义包括函数首部和函数体两部分。类型标识将是指函数返回值的类型,简称函数值类型。函数的返回值由函数中的return语句获得,即return后的表达式的值,可以是简单类型、void类型或构造类型等,注意一般函数返回什么类型的数据,函数的
2、类型就定义成相应的类型。void类型为空类型,表示函数没有返回值。如希望不返回值,可以定义函数类型为void类型,当函数值类型为int时,可省略函数类型的说明。关于return:函数的值只能通过return语句返回主调函数,返回函数值的类型和函数定义中函数的类型应保持一致,如果函数值为int型可以省略函数类型说明,不返回函数值的函数,明确定义成空类型。函数名是函数的标识符。函数名取名遵循c语言标识符的命名规则,区分大小写。函数名后的形式参数表列给出函数的形式参数及其类型说明。形式参数简称形参,形式参数及其类型说明放在函数名后的一对圆括号中无论函数是否有形式参数,函数名后的圆括号不可省;圆括号内
3、没有形式参数的函数我们称之为无参函数,有形式参数的函数我们称为有参函数。强调:没有形式参数圆括号也不能省。形式参数可以是各种类型的变量,形式为:形参1类型 形参1,形参2类型 形参2 各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。函数体:函数说明之后的花括号“”括起来的部分,包括声明部分和执行部分:1)声明部分:用来对函数中使用的变量和函数作说明。2)执行部分由基本语句组成函数的功能由函数体内的各个语句的执行来实现。解释函数函数的调用一个函数被定义后,程序中的其他函数就可以使用这个函数,这个过程称为函数调用。1。函数调用的一般形式函数名(实参表列);实际参数表中的
4、参数可以是常数、变量或构造类型数据,各实参之间也是用逗号分隔。对无参函数调用时无实际参数表。函数有以下三种调用方式:(1) 函数表达式:函数调用出现在一个表达式中、这种表达式称为函数表达式。例如wmax(x,y);此时要求函数返回一个确定的值参加表达式的计算。这里把max的返回值赋给变量w。(2) 函数语句:把函数调用作为一个语句,例如:printf(“%d”,a) ,这是以函数语句的方式调用函数。 (3)函数参数。函数调用作为一个函数的实参,把函数的返回值作为实参传递,一次要求函数必须是有返回值的。例如:m=max(a,max(b,c); 其中max(b,c)是一次函数调用,它的值作为max
5、另一次调用的实参。2函数调用语句的执行过程计算每个实参表达式的值,并把此值存人被调用函数所对应的形参单元中;把执行流程转入被调用函数体执行函数体中的语句;当执行到彼调用函数体的右花括号或return语句时,被调用函数体执行完成,返回到主调函数中此次调用函数语句的下一条语句,继续往下执行。版书书上P72例子讲解#include int max(int a,int b) 函数定义,详细的说明函数的功能,不管main函数在什么位置, 程序的执行总是从main函数开始的。main函数中z=max(x,y) if(ab) return a; 语句表示主函数调用了max函数,是哪一种调用方式呢?函数els
6、e return b; 表达式的方式,函数调用时,实参x的值传递给相应的形参a 实参y传递给相应的形参b,若scanf输入3,5,x、y的值分别 main() 是?a、b的值分别是?开始调用max函数,main函数暂时停止 运行,解释max函数。max函数执行的结果将两数中的大者返 int x,y,z; 回。这里主函数中设置返回值赋给z。调用结束后返回到主调printf(“input two numbers:n”); 函数中此次调用函数语句的下一条语句,继续往下执行。scanf(“%d%d”,&x,&y); 也就是开始执行printf语句。z=max(x,y);printf(“maxmum=%
7、d”,z)上面讲的是函数定义放在main函数之前的情况。那么如果函数定义放在main函数之后,必须在函数调用以前对函数进行声明。书上的例子:int max(int a,int b); 由于max函数放在main之后,main() 在调用之前要进行声明,意思是告诉计算机编译系统,程序将 出现一个max函数,不能太突然了,吓人家一大跳 int x,y,z; 函数声明与函数定义中的函数首部相同,但是末尾要加分号。printf(“input two numbers:n”); 函数声明时里面的参数可以省略不写,写成scanf(“%d%d”,&x,&y); int max(int,int),也可以和定义的参数不同,但是z=max(x,y); 类型标识符不能省略,而且两个参数则对应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年关于格式合同的法律规制与挑战
- 2025混凝土拌合站租赁合同范本
- 2025年桥梁工程试题
- 2025年肠梗阻理论试题
- 幼儿园语言教育与活动设计 课件 第6、7章 幼儿园语言教育活动实施的价值取向与反思;幼儿园语言教育活动中的教师与幼儿
- 高三高考数学知识点总结
- 保险-72名亿万富翁死亡的背后
- 纵隔疝的临床护理
- 火灾应急流程制作指南
- 某咨询-北京世博伟业房地产0806一阶段人力资源诊断报告
- 新员工入职报到通知书
- 2018年版电工-国家职业技能标准
- 浅谈如何做好财务安全工作
- 砼塔施工方案
- 电动车分期付款的合同范本
- 高中英语-Live form the Louvre教学设计学情分析教材分析课后反思
- 2023北京高考英语答题卡ok
- 医务科运用PDCA循环提高门诊医生准时出诊率PDCA成果汇报
- 动脉采血操作考核标准
- 艾媒咨询 2023-2024年中国水产行业现状及消费趋势洞察报告
- 2023年新疆省新疆生产建设兵团四年级数学第二学期期末预测试题含解析
评论
0/150
提交评论