★例:写一个函数。求两个数中的最大数 int max (a, b) int a b int c c=(a>b)?a: b; 返回值的大小? return(c) 编写函数时可以认为形参是已经定义并赋值的变量 函数定义后并不被执行,只有当调用该函数时才能被执行
int max ( a , b ) int a , b ; { int c ; if ( a > b ) c = a ; else c = b ; return ( c ) ; } 函数的形参数量? 函数的形参类型? 返回值的类型? 函数名称? 函数的类型? 编写函数时可以认为形参是已经定义并赋值的变量 c = ( a > b ) ? a : b ; 返回值的大小? 函数定义后并不被执行,只有当调用该函数时才能被执行 例:写一个函数,求两个数中的最大数
7.4函数的调用 函数定义后,并不被执行,形参和函数中的其它 变量并不分配存储单元。只有当调用函数时,程序才 转到函数去执行,这时,为形参及函数中的其它变量 分配临时存储单元,并将实参的值按顺序传递给形参。 ★调用形式 函数名(实参表) 说明 实参与形参个数相等,类型一致,按顺序一一对应 函数的调用实际上就是将实参的值传递给相应的形参, 然后转到函数中去执行各个语句,如果函数中有 return 语句,则返回一个函数值
调用形式 函数名(实参表); 说明: ⚫实参与形参个数相等,类型一致,按顺序一一对应 ⚫函数的调用实际上就是将实参的值传递给相应的形参, 然后转到函数中去执行各个语句,如果函数中有return 语句,则返回一个函数值。 7.4 函数的调用 函数定义后,并不被执行,形参和函数中的其它 变量并不分配存储单元。只有当调用函数时,程序才 转到函数去执行,这时,为形参及函数中的其它变量 分配临时存储单元,并将实参的值按顺序传递给形参
★调用方式 ◇函数语句:把函数调用作为一个语旬,如 printf()函数 这种调用方式不使用函数的返回值,因而在函数体中不需 要 eturn语句 例 printstar( printf( hello, World! n”) ◆函数表达式:把函数调用作为表达式的一部分,这种调用 方式使用函数返回的函数值,因而在函数体中一定要使用 return.语句返回一个确定的函薮值。 例m=max(a,b)*2; 心函数参数:把函数调用作为一个实参进行函数调用,这种 调用方式也要使用函数的返回函数值,因而在函数体中也· 定要使用 return语句返回确定的函数值。 例 printf("%od2max(ab) m=max(a, max(b, c))
调用方式 ❖函数语句:把函数调用作为一个语句,如printf( )函数, 这种调用方式不使用函数的返回值,因而在函数体中不需 要return语句。 例 printstar(); printf(“Hello,World!\n”); ❖函数表达式:把函数调用作为表达式的一部分,这种调用 方式使用函数返回的函数值,因而在函数体中一定要使用 return语句返回一个确定的函数值。 例 m=max(a,b)*2; ❖函数参数:把函数调用作为一个实参进行函数调用,这种 调用方式也要使用函数的返回函数值,因而在函数体中也一 定要使用return语句返回确定的函数值。 例 printf(“%d”,max(a,b)); m=max(a,max(b,c));
例计算x的立方 #include <stdio. h> a 2 float cube(float x) product 1.728 return(Ⅹ米X米X main( i float a, product printf("Please input value of a: scant( %f", &a) product=cube(a) printf("Cube of %.4f is %. 4fn", a, product) C Ch.c
例 计算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
★函数使用例1求两个数中的最大数 int max( a, 函数表达式,将函数值作 int a. b 为赋值表达式的一部分 Int c if(a>b)c=a, else c=b 调用时,将实参x的值传递给形 return(c 参a实参y的值传递给形参b转 main( 到max()函数执行 I int X, y, z; scanf(%d%d",x,&y) z=max(x,y);◆一相当于f(0),f(1),f(2) printf (X=%d, y=%d, max=%d In",X,y, z; 运行程序
int max ( a , b ) int a , b ; { int c ; if ( a > b ) c = a ; else c = b ; return ( c ) ; }main ( ) { int x , y , z ; scanf ( "%d%d" , &x , &y ); z = max ( x , y ) ; printf ( " x= %d , y= %d , max = %d \n", x , y , z ) ; } 调用时的实参? 返回值存入何处? 函数表达式,将函数值作 为赋值表达式的一部分 相当于f(0) , f(1) , f(2) 调用时,将实参 x 的值传递给形 参a,实参 y 的值传递给形参b,转 到max()函数执行 运行程序 函数使用例1—求两个数中的最大数