2、>intmax2(intx,inty);//函数声明intmain(){inta,b,max;printf(“请输入两个数:”);scanf(“%d%d”,&a,&b);printf(“最大的数是%d”,max);return0;}max=max2(a,b);//函数调用//函数定义intmax2(intx,inty){intmax;if(x>=y)max=x;elsemax=y;returnmax;}函数声明举例intmax2(intx,inty);intmain(){inta,b,c,ma
3、x;//...return0;}intmain(){inta,b,c,max;intmax2(intx,inty);//...return0;}intmax2(intx,inty){intmax;if(x>=y)max=x;elsemax=y;returnmax;}intmain(){inta,b,c,max;//...return0;}函数声明(原型)对被调用函数要求:必须是已存在的函数库函数:#include<*.h>用户自定义函数:函数声明函数声明的作用:告诉编译系统函数类型、参数个数及类型
4、,以便检验格式:类型函数名(类型[形参名],…..);intmax2(intx,inty);位置:程序的数据声明部分(函数内或外)若被调用函数的定义出现在主调函数之前,可以不作函数声明缺省函数类型时,系统自动按int型处理函数调用实参与形参的个数应相等、类型应一致如果实参表包含多个实参,则各参数间用逗号隔开如果调用的是无参函数,则“实际参数表”可以没有,但括号()不能省略调用格式:函数名(实参表)max=max2(a,b);max=max2(max,c);max=max2(max2(a,b),c)
5、;printf(“a=%d,b=%d”,a,b));ch=getchar();函数调用的概念C语言程序是由若干个函数组成的,各函数在结构上是独立的,但它们所处理的数据却是相互联系的一个函数定义好后,只有调用它时才被执行通过函数的参数,主调函数和被调函数具有数据传递的关系函数不能嵌套定义,即在一个定义好的函数中,又定义另一个函数。但是函数之间允许相互调用,也允许嵌套调用。main函数通常由操作系统调用函数还可以自己调用自己,称为递归调用函数参数的传递:值传递(主调函数)c=max2(a,b);(
6、被调函数)intmax2(intx,inty)实际参数形式参数参数传递c=max2(a,b);(main函数)(max函数)intmax2(intx,inty){intmax;if(x>=y)max=x;elsemax=y;returnmax;}a10b30yx1030值传递:形参与实参占用不同的内存单元,单向传递函数返回功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给主调函数返回语句形式:return(表达式);return表达式;return;函数中可有多个return语句,但只能
7、返回唯一的函数值若无return语句,遇}时,自动返回调用函数,返回值是一个不确定的值void型函数:表示“空类型”或“无类型”若函数类型与return语句中表达式值的类型不一致,自动转换成函数类型//有返回值函数intmax2(intx,inty){intmax;if(x>=y)max=x;elsemax=y;returnmax;//返回最大值}//有多个return语句intmax2(intx,inty){if(x>=y)returnx;elsereturny;}//无返回值函数voidpri
8、ntstart(){printf(“**********”);}?赋值表达式中,数据的类型是怎样转换的//表达式类型与函数类型不一致intmax2(floatx,floaty){floatmax;if(x>=y)max=x;elsemax=y;returnmax;}函数的定义类型函数名(形式参数类型说明表){声明部分执行部分}形式参数表是一个用逗号分隔的变量表,当函数被调用时这些变量接受调用参数的值。相当于函数调用时传递信息的通道。注意:每个参数必须指明类型函数不能单独运行,函数可