例8.1:求3个字符中的最大值 char char①max(char x,char v,char z→ max (x,y,z) char m; char x,y,x; m=x>y?x:y m=m>z?m:z main函数可在任何位置, return(m ) x、y、z形参,a、b、c为 ②main() 实参,函数不能自己执行, char a,b,c,d; 只能被调用 printf(“Enter three characters:\n”); scanf(“%c,%c,%c”,&a,&b,&c); d=max a,b,c printf(“Max=%c”,d);
例8.1:求3个字符中的最大值 char ①max(char x,char y,char z ) { char m; m = x > y ? x : y ; m = m > z ? m : z ; return( m ); } ②main( ) { char a,b,c,d; printf(“Enter three characters:\n”); scanf(“%c,%c,%c”,&a,&b,&c ); d = max( a,b,c ); printf(“Max = %c”, d); } main函数可在任何位置, x、y、z形参,a、b、c为 实参,函数不能自己执行, 只能被调用 char max(x,y,z); char x,y,x;
8.3函数的参数和返回值 ?形式参数:定义函数时函数名后面括号中的变量名 冬实际参数:调用函数时函数名后面括号中的表达式 比较两个数并输出大者 main() c=max(a,b);(main函数) {int a,b,c; max (int x,int y) scanf ("%d,%d",&a,&b) int z; (max函数) c=max (a,b); 实参 z=x>y?x:y; printf("Max is %d,c; return (z) 形参 max (int x,int y) int z; z=x>y?x:y; return(z);]
8.3 函数的参数和返回值 ❖形式参数:定义函数时函数名后面括号中的变量名 ❖实际参数:调用函数时函数名后面括号中的表达式 c=max(a,b); (main函数) (max函数) max(int x, int y) { int z; z=x>y?x:y; return(z); } 比较两个数并输出大者 main() {int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("Max is %d",c); } max(int x, int y) { int z; z=x>y?x:y; return(z);} 形参 实参
★说明: 实参必须有确定的值,可是常量、变量或表达式 冬形参必须指定类型 冬形参与实参类型一致,个数相同 冬若形参与实参类型不一致,自动按形参类型转 换一 函数调用转换(标准c定义) 冬对于经典c函数定义,当参数个数和类型不匹配 时,运行结果错误 形参在函数被调用前不占内存;无确定值,函数 调用时为形参分配内存,接收传递来的实参值; 调用结束,内存释放 ?形参是函数内部的局部变量,可以和实参同名
说明: ❖实参必须有确定的值,可是常量、变量或表达式 ❖形参必须指定类型 ❖形参与实参类型一致,个数相同 ❖若形参与实参类型不一致,自动按形参类型转 换— 函数调用转换(标准c定义) ❖对于经典c函数定义,当参数个数和类型不匹配 时,运行结果错误 ❖形参在函数被调用前不占内存;无确定值,函数 调用时为形参分配内存,接收传递来的实参值; 调用结束,内存释放 ❖形参是函数内部的局部变量,可以和实参同名
例 计算x的立方 #include <stdio.h> a 1.2 float cube(float x) product 1.728 return (x*x*x); main() float a,product; printf("Please input value of a:") scanf ("%f",&a); product=cube(a); printf("Cube of %4f is %4f\n",a,product)
例 计算x的立方 #include <stdio.h> float cube(float x) { return(x*x*x); } main() { float a, product; printf("Please input value of a:"); scanf("%f",&a); product=cube(a); printf(”Cube of %.4f is %.4f\n",a,product); } x a product ×× ×× 1.2 1.2 1.728
返回语句 例 无返回值函数 形式return(表达式);或r void swap(int x,int y 功能:①为完成一定的处玛 {int temp; 无返回值;②为得到计算 temp=x; 调函数返回调用函数,同 x=y; 说明:函数中可有多个 y=temp; 若无return语句,遇}时} 若函数类型与return语句中表达式值的类型不一致, 按前者为准,自动转换- 函数调用转换 无返回值的函数应定义为void型,否则返回一个不确 定的值 return语句的功能是结束被调函数的运行,返回主调 函数继续执行后面的语句。无返回值的函数可用 return
返回语句 形式return(表达式);或return 表达式;或return; 功能:①为完成一定的处理功能,被调函数只执行处理, 无返回值;②为得到计算处理结果,使程序控制从被 调函数返回调用函数,同时把返回值给调用函数 说明:函数中可有多个return语句 若无return语句,遇}时,自动返回调用函数 若函数类型与return语句中表达式值的类型不一致, 按前者为准,自动转换-函数调用转换 无返回值的函数应定义为void型,否则返回一个不确 定的值 return语句的功能是结束被调函数的运行,返回主调 函数继续执行后面的语句。无返回值的函数可用 return ; 例 无返回值函数 void swap(int x,int y ) {int temp; temp=x; x=y; y=temp; }