- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 函数
7.2 函数的定义
7.3 函数的参数和返回值
7.4 函数的调用
7.5 函数的嵌套与递归调用
7.6 数组与函数参数
7.7 指针与函数
7.8 变量的存储类别
7.9 模块化程序设计方法
补充:如何运行一个多文件的程序 ; 一个较大的程序一般应分为若干个程序模块,每一个模块
用来实现一个特定的功能.一个C程序可由一个主函数和若干
个函数构成。由主函数调用其他函数,其他函数也可以互相调
用。同一个函数可以被一个或多个函数调用任意多次。
下图是一个程序中函数调用的示意图:;main() /* 主函数 */
{
print_star(); /*调用print_star函数画****/
print_message(); /*调用print _message函数写字*/
print_star(); /*调用print_star函数画****/
}
print_star() /*定义print_star函数*/
{
prinf(“\n**********”);
}
print_message() /*定义print_message函数*/
{
prinf(“\n Hello! ”);
};说明:;(5)从用户使用的角度看,函数有两种:;1、无参函数的定义形式;例如:
int max(int x,int y)
{ int z;
z=xy? x:y;
return(z);
};3、可以有“空函数”;4、对形参的声明的传统方式;1、形式参数和实际参数;例:调用函数时的数据传递;(1)在定义函数中指定的形参,在未出现函数调用时,它们并
不占内存中的存储单元。只有在发生函数调用时,函数
max中的形参才被分配内存单元。在调用结束后,形参所
占的内存单元也被释放。;(3)在被定义的函数中,必须指定形参的类型。;函数的返回值;; C语言规定,凡不加类型说明的函数,一律自动按整型处
理。在定义函数时对函数值说明的类型一般应该和return语句
中的表达式类型一致。;(3)如果函数值的类型和return语句中表达式的值不一致,则
以函数类型为准。对数值型数据,可以自动进行类型转
换。即函数类型决定返回值的类型。;1、函数调用的一般形式 ;2、函数调用的方式 ;(2)函数表达式;3、对被调用函数的声明和函数原型 ;例 对被调用的函数作声明;在函数声明中也可以不写形参名,而只写形参的类型。如:
float add(float,float);;说明:;③ 如果已在所有函数定义之前,在函数的外部已做了函数声
明,则在各个主调函数中不必对所调用的函数再作声明。
例如:;例题:写出下列程序的输出结果 (1);(2);分析:通过对上面两程序,理解两种参数传递方式的区别:; C语言的函数定义都是互相平行、独立的,也就是说在
定义函数时,一个函数内不能包含另一个函数。
C语言不能嵌套定义函数,但可以嵌套调用函数,也就
是说,在调用一个函数的过程中,又调用另一个函数。;例 编一个程序计算下列函数值;;float p(long i)
{ long k,j;
for(k=j=1;j=i;j++) k=k*j;
return((float)(k));
}
float s(long n)
{ float sum=0.0;
long k;
for(k=1;k=n;k++)
sum=sum+p(k);
return(sum);
}; 上述程序中,函数f()通过函数s()调用了函数p(),主函数通
过函数f()调用函数s()都称为两层嵌套调用;主函数调用通过函
数f()、s()调用函数p()称为三层嵌套调用。
原则上说,C语言不限制嵌套调用的层数,嵌套调用层数仅
受计算机内存的限制。 ; 在调用一个函数的过程中又出现直接或间接调用该函数
本身,称为函数的递归调用。 ;如果有一条调用语句“k=p(4);”,用图示的方式描述其执行过程。; 我们把向下的递归调用过程称为“递归过程”,把向上的携带
返回值计算返回表达式的过程称为“回溯过程”。其中递归过程
的关键在于每次递归时,参数的值都要逐步趋向某个特定值(例
子中这个特定值是1)。当递归到参数值等于特定值时,递归过程
结束,
您可能关注的文档
最近下载
- 2022年一级造价师-土建案例-陈江潮精讲班完整讲义.pdf
- 第一册: 标准设计与典型造价 V3.0版 智能配电站.pdf
- 第二课性骚扰的危害 课件 2024—2025学年华东师大版(2024))初中体育与健康七年级全一册.pptx VIP
- 《工程勘察设计收费管理规定》计价格【2002】10号.doc
- 【国家标准】GB14759-2010 食品安全国家标准 食品添加剂 牛磺酸.pdf
- 2020年广西防城港中考生物真题及答案.doc VIP
- 前列腺癌的基础知识.pptx
- 食品安全管理员考试试题及答案(2025版).docx VIP
- 2025年中国空调离合器皮带轮市场现状分析及前景预测报告.docx
- (2)IT运维管理:ITIL先锋论坛—DevOps来了运维如何改变.docx
文档评论(0)