二、函数的调用 ★调用形式 函数名(实参表); ★调用方式 函数语句: 例printstarO); printf(Hello,World!\n): 必函数表达式: 例 m=max(a,b)*2; 函数参数: 例 printf(d",max(a,b)); m=max(a,max(b,c));
调用方式 ❖函数语句: 例 printstar(); printf(“Hello,World!\n”); ❖函数表达式: 例 m=max(a,b)*2; ❖函数参数: 例 printf(“%d”,max(a,b)); m=max(a,max(b,c)); 二、函数的调用 调用形式 函数名(实参表);
无参函数的定义与调用 打印如下图形 m void star() The first one: (i 米 int i,j; * f利 for(i=1;i<=4;i++) **米 f **** (for0=1j<=ij++) The second one: printf("*"方 printf("\n"); * ** p *大大女 f return; 3 main() printf("The first one:In"); star);*调用前面定义的函数star*/ printf("The second one:In"); star0;~调用前面定义的函数star*/
main( ) { int i,j; printf("The first one:\n"); for(i=1;i<=4;i++) { for(j=1;j<=i;j++) printf("*"); printf("\n"); } printf("The second one:\n"); for(i=1;i<=4;i++) { for(j=1;j<=i;j++) printf("*"); printf("\n"); } } 无参函数的定义与调用 The first one: * ** *** **** The second one: * ** *** **** void star() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=i;j++) printf("*"); printf("\n"); } return; } main() { printf("The first one:\n"); star(); /*调用前面定义的函数star*/ printf("The second one:\n"); star(); /*调用前面定义的函数star*/ } 打印如下图形
有参函数的定义与调用 例、输入圆环内外半径,求圆环面积 main() float area(float r)) {float r1,r2,s; float s; scanf("%f%f",&r1,&r2); s=3.14159*r*r; s=3.14159*(r1*r1-r2*r2); return s; printf("s is %fn",s); main() {float r1,r2,s; scanf("%f%f",&r1,&r2); s=area(r1)-area(r2); printf("s is %fn",s);
有参函数的定义与调用 例、输入圆环内外半径,求圆环面积 main( ) {float r1,r2, s; scanf("%f%f",&r1,&r2); s=3.14159*(r1*r1-r2*r2); printf("s is %f\n", s); } float area(float r ) { float s; s=3.14159*r*r; return s; } main( ) {float r1,r2, s; scanf("%f%f",&r1,&r2); s=area(r1)-area(r2); printf("s is %f\n", s); }
§9.3函数参数和返回值 ★形参与实参 冬形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 例比较两个数并输出大者 main() int a,b,c; scanf("%d,%d",&a &b); c=max(a,b); (main函数) c=max(a,b)月 实参 max(intx,inty)(max函数) printf("Max is %d",c); int z; z-x>y?x.y, max(int x,int y) return(z); 形参 int z, z-x>y?x:y, return(Z);
§9.3 函数参数和返回值 形参与实参 ❖形式参数:定义函数时函数名后面括号中的变量名 ❖实际参数:调用函数时函数名后面括号中的表达式 c=max(a,b); (main 函数) max(int x, int y)(max 函数) { 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); } 形参 实参
§9.3函数参数和返回值 ★形参与实参 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 说明: ●实参必须有确定的值 ●形参必须指定类型 ·实参与形参个数相等,类型一致,按顺序一一对应 ●若形参与实参类型不一致,自动按形参类型转换一 一一函数调用转换 ●形参在函数被调用前不占内存;函数调用时为形参分 配内存;调用结束,内存释放
❖说明: ⚫实参必须有确定的值 ⚫形参必须指定类型 ⚫实参与形参个数相等,类型一致,按顺序一一对应 ⚫若形参与实参类型不一致,自动按形参类型转换— ——函数调用转换 ⚫形参在函数被调用前不占内存;函数调用时为形参分 配内存;调用结束,内存释放 §9.3 函数参数和返回值 形参与实参 ❖形式参数:定义函数时函数名后面括号中的变量名 ❖实际参数:调用函数时函数名后面括号中的表达式