- 2
- 0
- 约9.76千字
- 约 40页
- 2017-06-03 发布于北京
- 举报
6.1 函数概念 3.“ 空函数 ” ? 形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。 ? 实参可以是常量、变量或表达式。 ? 必须指定形参类型,且必须与实参的类型一致。 ? 实参对形参的数据传递是“值传递”。即单向传递,不能逆传。 ? 可以在形参表中直接说明形参类型。如: int max(int x, int y); float fun(int a[10], int n); ? 函数的返回值是通过return语句获得的。当不需返回函数值时,可省去return语句。 ? return语句的后面可以有括号,也可以没有。如: return z ; ? return(z); ? return语句的后面可以是变量,也可以是表达式。如: return(x y ? x : y); ? return语句返回值的类型应与该函数的类型一致。否则以函数类型为准。 1.函数调用的一般形式 函数名(实参表); 说明: ? 对于无参函数,尽管没有“实参表”,但也不得省略括号。 ? “实参表”中的参数之间用逗号分开。 ? 实参与形参之间的个数及类型必须一一对应。 ? 对实参求值的顺序是自左至右还是自右至左, 视具体的系统而定。Turbo C 和 MS C 是按自右至左的顺序求值。 调用函数,可以有如下三种方式: ? 将函数调用作为一个语句。如: printf(“MS C pragramming”); gets(s); ? 将被调用的函数写在表达式中。如: c=2?max(a, b); 注意:被调用函数max必须有确定的返回值。 ? 将函数调用作为一个函数的实参。如: m=max(max(a, b), c); 3.对被调用函数的说明 在一个函数中调用另一个函数时: ? 如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如: #include “stdio.h” #include “math.h” 类型标识符 被调函数名( ); 如:float add( ); ? 如果被调函数为自定义函数且其定义在主调函数定义之前,则在主调函数中可不必声明其类型。因为编译程序已知道其类型。 ? 如果被调函数的值是整型或字符型,可不必声明类型,系统自动按整型说明。 ? 如果在所有被调函数定义之前、在文件的开头、在函数的外部已对被调函数作了类型说明,则在各主调函数中可不必说明其类型。如: char letter( ); float f( ); int i( );? main( ) {……} /? 不必说明它所调用的函数的类型 ?/ C 语言函数的定义都是相互平行、独立的,不能嵌套定义。但可以嵌套调用函数。所谓函数的嵌套调用就是在被调用的函数中又调用另外的函数。 6.6 函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 例6.4 有5人排成一队,从最后一人开始,其年龄均比前面的人大2岁,而最前面的人年龄是10岁,问最后一人的年龄是多少岁? 汉诺塔问题参考程序(将A座上的N个disks 借助B座移动到C座) #include stdio.h void h(int m,char x,char y,char z); void main() {int n; char a=a;char b=b;char c=c; printf(input disks:); scanf(%d,n); h(n,a,b,c); } void h(int m,char x,char y,char z) {if(m==2){printf(%d%c--%c\n,m-1,x,y); printf(%d%c--%c\n,m,x,z); printf(%d%c--%c\n,m-1,y,z); } else { h(m-1,x,z,y); printf(%d%c--%c\n,m,x,z); h(m-1,y,x,z); } } 1.局部变量 在一个函数内部定义的变量,只能在本函数内使用和有效,称为“局部变量”。 ?主函数main中定义的变量,也只能在主函数内使用和有效。 ?不同函数中可以使用相同名字的变量,且互不干扰。 ?形式参数也是局部变量,也只能在所在函数内使用和有效。 ?可以在一个函数内的复合语句中定义变量,且这些变量只在本复合语句中有效。 这种复合语
您可能关注的文档
- 7.1公共航空运输企业.ppt
- 7.2弘扬时代精神.ppt
- 7.3我国的宗教政策-fen.ppt
- 78核聚变粒子和宇宙课件.ppt
- 7《最后一课》课件.ppt
- 7望大陆六年级上册课件.ppt
- 7第七章体育锻炼原理与方法.ppt
- 8.1世界是永恒发展.ppt
- 8.5、宏对象的调试与执行.ppt
- 8-1-基于ARM的嵌入式程序设计.ppt
- 2025年北京市门头沟区中考一模英语试题.docx
- 2025年北京市门头沟区中考二模英语试题.docx
- 2025年北京市丰台区中考二模英语试题.docx
- 2025年中考英语考前冲刺模拟卷 (北京专用) 解析卷.docx
- 2025年中考英语考前冲刺模拟卷 (北京专用) 原卷.docx
- 2025年肩颈按摩仪行业社媒趋势数据分析.docx
- 2025年人身险行业信用回顾与2026年展望.docx
- 合同法买卖合同培训课件.ppt
- 2025年全球食物系统与SDG研究报告-食物供给、食者健康、生态平衡的整体治理.docx
- 2025下半年四川乐山市川投峨眉铁合金(集团)有限责任公司对考前自测高频考点模拟试题最新.docx
原创力文档

文档评论(0)