- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
清华大学C语言谭浩强第五章
第5章函数;第5章函数;5.1 C程序的模块结构;5.1.1 C程序的模块化结构概念;5.1.2 函数的概述;?例5.1?一个简单函数调用的例子:
#includestdio.h
main()
{
hello(); /* 调用hello函数*/
}
hello() /* hello函数 */
{
printf (Hello,human \n);
};5.2 函数的分类;1.从函数定义的角度进行分类;2.从函数形式的角度进行分类;3.从函数的作用范围进行分类;4.从有无返回值的角度进行分类;应该指出的是;在C语言中,所有的函数定义,包括主函数main在内,都是平行的。也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。
但是函数之间允许相互调用,也允许嵌套调用。习惯上把调用者称为主调函数。
函数还可以自己调用自己,称为递归调用。
main函数是主函数,它可以调用其他函数,而不允许被其他函数调用。
C程序的执行总是从main函数开始,完成对其他函数的调用后再返回到main函数,最后由main函数结束整个程序。
一个C源程序必须有且只能有一个主函数main。;5.3函数的定义和调用;5.3.1函数的说明;5.3.2函数的定义;1.现代格式;2.传统格式;1)函数名;2)函数的形式参数;当形式参数有多个时,相互之间用逗号隔开。
函数名后面的圆括号中可以是空白或void,这种函数称为无参函数。
例如:
float sub(void)
或
float sub();3)函数的返回值;4)函数的数据类型;5)函数的存储类型;6)函数体;5.3.3有参函数和无参函数;1.有参函数的定义;?例5.2?定义一个函数,该函数的功能是求出三个数中的最大数。
int max(int a, int b,int c)
{
int max;
max=a;
if(ab) max=b;
if(maxc) max=c;
return(max);
}
在C程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放在main之后。
例如下面所示的程序是将max函数放在main之前。;#includestdio.h
int max(int a, int b,int c)
{ int max=a;
if(ab) max=b;
if(maxc)max=c;
return(max);
}
main()
{ int max(int a,int b,int c);
int z,m,n,y;
printf(input three numbers:\n);
scanf(%d%d%d,m,n,y);
z=max(m,n,y);
printf(The max is %d,z);
};2.无参函数的定义;{ }中的内容称为函数体。
在很多情??下不要求无参函数有返回值,此时的函数类型符可以写为void。
例如:
void Hello( )
{
printf(Hello human\n);
}
Hello函数是一个无参函数,当该函数被其他函数调用时,输出:“Hello human”字符串。;5.3.4 函数的调用 ;1. 函数的简单调用;当被调用函数是无参函数时,函数名后面的括号不要省略。
使用C语言的库函数就是函数简单调用的方法。例如:
main()
{
printf(******\n);
}
上述程序在main()函数中调用输出函数printf来输出一行星号。;2.调用的方式;1)函数表达式;2)函数语句;3)函数实参;在函数调用时,需要对被调用函数进行说明。对函数进行说明时需要注意:
(1)在调用系统函数时,需要用包含命令#include“头文件名.h”将定义系统函数的库文件包含在本程序中,有关包含命令的相关知识在后面的章节中将详细介绍。
(2)如果调用函数和被调用函数在一个编译单元中,则在书写顺序上被调用函数比调用函数先出现;或者被调用函数虽然在调用函数之后出现,而被调用函数的类型是整型或字符型,可以不对被调用函数加以说明。
除了上述两种情况以外,都要对被调用函数加以说明。;函数说明的位置一般在调用函数的函数体开头的数据说明语句中,说明的格式为:
数据类型 被调用函数名();
(3)如果被调用函数和调用函数不在一个编译单元,则需要在定义函数的编译单元中用下列方式将被调用函数定义成外部函数:
extern 数据类型 函数名(形式参数表);
同时在主调用函数的函数体中,或所在编译单元的开头将要调用的函数说明成“外部
文档评论(0)