- 1
- 0
- 约3.68千字
- 约 22页
- 2017-12-26 发布于河北
- 举报
C语言chap6
第6章 函数 一、函数的引入 二、C语言函数定义的两种形式 形式1: 类型名 函数名(类型名 形参1,类型名,形参2,……,类型名 形参n) { 说明语句; 执行语句; } 形式2: 类型名 函数名(形式参数表) 形式参数说明; { 说明语句; 执行语句; } 例如:int max(int x, int y) 等价于:int max(x,y) int x,y; 几点重要说明 函数的定义在程序中都是平行的,即不允许在一个函数的内部再定义另一个函数 函数名是用户自定义标识符,当函数值为整型时类型名可省略,当函数只完成某个操作而不返回值时,可用类型名void 形参表中的形参是用户自定义标识符,没有参数时,圆括号不能省略,函数为无参函数 三、函数的参数 几个定义 函数调用 调用函数 被调函数 形式参数(形参) 实际参数(实参) 说明 形参在定义时不占内存空间,只在调用函数时为其分配存储单元,且在调用结束后释放内存空间 实参可以是常量、变量、表达式,但必须预先有确定值 实参变量与形参变量发生“单向值传递”,但当数组名作为实参进行传递时,传递的是数组的首地址 四、函数的返回值 格式: return(表达式); 或 return 表达式; 说明 一个函数中可以有多个return语句;当执行到某个return语句时,程序的控制流程返回到调用函数中,并将return语句中表达式的值作为函数值带回 若没有return,就一直执行到函数体末尾,返回函数时,带回一个不确定值。所以若不带回函数值,应将函数定义为void类型 return语句中表达式的类型应与函数值类型一致。若不一致时,则以函数值的类型为准,并由系统按赋值兼容的原则进行处理 五、函数调用 格式 函数名(实参表); 说明 实参表中,实参个数多于一个时,各参数之间用逗号分隔,实参个数、类型必须与对应的形参一致 无参函数在调用时,没有参数传递,但圆括号不能省略 两种方式调用函数 作为表达式出现在任何允许表达式出现的地方参与运算,此种调用只能用于函数有返回值的情况。 如:c=2*max(a,b); 作为一条独立的语句进行函数调用,此种调用多用于函数没有返回值的情况,即函数类型为void类型。 如:printstar( ); 调用函数与被调用函数的相对位置关系 先定义,后调用 若被调函数的定义在调用函数之后出现,必须在调用函数中对被调函数加以说明,int、char型函数除外 格式:类型名 被调用函数名( ); 函数的调用可以嵌套 函数的调用可以递归 参数传递的两种方式 传值调用:函数调用时,实参的值一一对应的传递给形参,且发生“单向值传递”。即使形参发生了值的变化也不会影响实参。 六、函数的嵌套调用 嵌套调用定义:在一个函数的内部调用另一个函数 七、函数的递归调用 定义:在调用一个函数的过程中又直接或间接调用该函数本身 分析递归实例 求n! 分析: 数学公式可转化为 执行过程 每次调用自己,保留上次的变量值,重新分配内存给这一次的变量 每次调用自己后,保留上次的执行程序 逐层返回 使用注意 一个问题转化为一个新问题,新问题的解法必须与旧问题一致,处理对象是规律性的递增或递减 必须有一个明确的结束条件,即递归出口,否则出现无限递归 八、数组作为函数参数进行传递 数组元素作为函数参数 分析:与普通变量作为函数参数进行传递没有区别,发生单向值传递 数组名作为函数参数 例1:求10个学生成绩的平均分,10个成绩用数组存放 分析:求10个数的平均分,不能引入10个形式参数,所以考虑用数组名作为函数参数进行传递,传递数组的首地址 double average(double b[10]) { int i; double aver,sum=0; for (i=0;i10;i++) sum+=b[i]; aver=sum/10; return(aver); } 分析: 改进: 引入一个参数用来传递数组元素个数 九、变量的存储类型 全局变量与局部变量 定义: 局部变量:函数内部定义的变量(包括main函数内部定义的变量) 全局变量:函数外部定义的变量 作用域: 全局变量作用域从定义处到文件尾 局部变量作用域就是本函数内部 如果全局变量与局部变量重名,则以局部为主 ? #include stdio.h void main( ) { int a,b,c; scanf(“%d%d”,a,b); c=
您可能关注的文档
- Chapter 2 part 2(2[一].3-2.5)__ 53P.ppt
- Chapter 5 Look it up课件.ppt
- Chapter 5,因子设计简介.ppt
- Chapter 6 – Audit Responsibilities and Objectives.ppt
- Chapter 8 地理信息系统产品的输出设计.ppt
- Chapter01-交互技术蕴含的商业价值.pptx
- Chapter04 - WM应用程序开发技术基础_v1.0.0.ppt
- chapter1 C语言概述.ppt
- CHAPTER03-04(汇编).ppt
- Chapter1_6 电压源和电流源元件.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 传媒法规与伦理教学课件(共22章)新闻伦理研究综述.pdf VIP
- 汽车行驶记录仪产品使用说明书.PDF VIP
- 2026年成都市美容医疗诊所医美项目安全规范运营可行性研究报告.docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
- (四年级奥数班讲义.doc VIP
- 单病种病案数据填报指导手册.doc
- 企业 IPO 筹备方案(最新版,附时间表 + 材料).docx VIP
- 深圳初三数学联考模拟试题.docx VIP
- 高考历史二轮总复习精品课件 第四板块 世界现代史 第十七讲 现代科技的发展与当今世界发展的趋势.ppt VIP
- 2024年菏泽职业学院单招数学考试模拟试题及答案解析.docx VIP
原创力文档

文档评论(0)