资源描述:
《C语言程序设计 任正云 ch4》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计主编任正云中国水利水电出版社第4章函数把大的程序分割成更容易管理的小模块。这种程序设计技术被称为“细化”,而这些小模块一般被称为“子程序”,在C语言中被称为函数。4.1.1函数的定义函数由函数头和函数体两部分组成。1、第一行为函数头,其中的函数名可以是任何合法的标识符。格式:<返回值类型><函数名>(<参数列表>){声明部分语句部分}说明:2、返回值类型是返回给调用者结果的数据类型。如果不指定返回值类型,总假定返回的是int类型。4.1.1函数的定义3、参数列表是用逗号分开的参数说明。参数说明的形式是:4、函数体由大括号{}括起来,一般由两部分组
2、成:说明部分和语句部分。<参数类型><参数名>说明部分声明用于函数内部的临时变量。也可以没有说明部分,只有语句部分。4.1.1函数的定义【例4.1】输入三个整数,求三个整数中的最大值。#include"stdio.h"voidmain(){intn1,n2,n3,nmax;intmax3(intx,inty,intz);printf("请输入n1,n2,n3的值:");scanf("%d,%d,%d",&n1,&n2,&n3);nmax=max3(n1,n2,n3);printf("max=%d",nmax);}intmax3(intx,inty,in
3、tz){intm;if(x>y)m=x;elsem=y;if(z>m)m=z;returnm;}/*函数的声明,分号不能少*//*主函数*/4.1.1函数的定义一个函数(定义)由函数头(函数首部)和函数体两部分组成。说明:函数名:给函数取的名字,函数名由用户命名,命名规则同标识符。(1)函数头(首部):说明函数类型、函数名称及参数。函数类型:函数返回值的数据类型,可以是基本数据类型也可以是构造类型。如果省略则默认为int类型,如果不返回值,则定义为void类型。函数名后面是形式参数表,无参函数没有参数,但“()”号不能省略。形式参数表说明形式参数的类型和形式参
4、数的名称,各个形式参数之间用“,”分隔。4.1.1函数的定义(2)函数体:函数头下方用一对{}括起来的部分。如果函数体内有多个{},最外层是函数体的范围。函数体一般包括声明部分和执行部分。声明部分:定义本函数所使用的变量和进行有关声明(如函数声明)。执行部分:程序段,即由若干条语句组成的命令序列(可以在其中调用其他函数)。4.1.2函数的参数和返回值1、函数的参数分为形式参数和实际参数两种。调用函数时所使用的实际的参数。2、形参和实参的功能是进行数据传递。发生函数调用时,主调函数把实参的值传递给被调函数的形参,从而实现主调函数向被调函数的数据传递。形式参数(形
5、参):函数定义时设定的参数。实际参数(实参):3、C语言可以从被调函数返回值给主调函数。在函数内是通过return语句返回值的。4.1.3函数的声明若函数定义位置在前,函数调用在后,不必声明,编译程序产生正确的调用格式。函数声明的格式为:若函数定义在调用它的函数之后或者函数在其他源程序模块中,且函数类型不是整型,这时,为了使编译程序产生正确的调用格式,可以在函数使用前对函数进行声明。函数类型函数名([形式参数表]);/*函数的声明,分号不能少*/C语言的库函数就是位于其他模块的函数,为了正确调用,C编译系统提供了相应的.h文件。.h文件内许多都是函数声明,当源
6、程序要使用库函数时,就应当包含相应的头文件。说明:4.2函数的调用使用函数的方法就是调用函数。一般地,在函数main中调用其他函数。4.2.1调用函数的一般形式C语言中,函数调用的一般形式为:函数名([实参表列]);(1)无参函数调用没有参数,但是“()”不能省略,有参函数若包含多个参数,各参数用“,”分隔,实参参数个数与形参参数个数相同,类型一致或赋值兼容。说明:(2)函数调用可以出现的位置如下:1)以单独语句形式调用(注意后面要加一个分号,构成语句)。以语句形式调用的函数可以有返回值,也可以没有返回值。例如:printf("max=%d",nmax);sw
7、ap(x,y);puts(s);4.2.1调用函数的一般形式2)在表达式中调用(后面没有分号)。在表达式中的函数调用必须有返回值。if(strcmp(s1,s2)>0)……例如:/*函数调用strcmp()在关系表达式中。*//*函数调用max()在赋值表达式中,“;”是赋值表达式作为语句时加的,不是max函数调用的。*//*函数调用fun2()在函数调用表达式fun1()中。函数调用fun2()的返回值作为fun1的参数。*/fun1(fun2());nmax=max(n1,n2,n3);4.2.1调用函数的一般形式(1)被调用函数必须是已经存在的函数(库函
8、数和用户自定义函数)。注意事项:(3)