问题: an maino 实参可以是表达{ 式吗? int x, y, Z; output();如果实参和形参 的类型不一样? scanf(%d/d, &x, &y) max(x, y) printf("%d", 2) void output() printf( 大大大大大大大大大大大大大大 int max(int a, int b) intf(* very good *n) fint c printf( 5大大大大大大大大大大大大大大 n”) c=a>b? a: b return(c)
main() { …… output( ); …… } void output( ) { printf(”**************\n”); printf(”* very good *\n”); printf(”**************\n”); } main( ) { int x,y,z; scanf(“%d%d”,&x,&y); z=max(x, y); printf(“%d”,z); } int max (int a , int b ) { int c ; c=a>b ? a : b ; return( c ) ; } 问题: 实参可以是表达 式吗? 如果实参和形参 的类型不一样?
函数的返回值 void maino 返回值类型函数名(形式参数表) Int m. n float fk. fm fn float fact(int n) fm= fact(6) 2、返回值类型 函数返回一个值,合法类型 float fact(int n) i int i return(exp) float f=1: for(i=1i<=n;计+) f=f return
返回值类型 函数名(形式参数表) { …… } void main() { int m, n; float fk, fm, fn; float fact(int n); fm = fact(6); …… } float fact(int n) { int i; float f=1; for(i=1; i<=n; i++) f=f*i; return f; } 2、返回值类型 函数返回一个值,合法类型 return (exp); 函数的返回值
2、返回值类型 问题 函数返回一个值,合法类型 return(f man)如果返回值的类 函数不返回值,void 型与 return(exp) return;或省略 int X, y, z;中的eXp不一致? 返回值类型缺省是int main scanf( %d%d, &x, &y) z=max(x, y) printf(%d, z) output int max(int a, int b void output() int c printf( 大大六大大大大★★大大大★大 printf(* very good *In) c=a>b? a: b printf( return(c)
main() { …… output(); …… } void output( ) { printf(”**************\n”); printf(”* very good *\n”); printf(”**************\n”); } 2、返回值类型 函数返回一个值,合法类型 return (f); 函数不返回值,void return; 或省略 返回值类型缺省是 int main( ) { int x,y,z; scanf(“%d%d”,&x,&y); z=max(x,y); printf(“%d”,z); } max(int a , int b ) { int c ; c=a>b ? a : b ; return( c ) ; } int 问题: 如果返回值的类 型与return (exp) 中的exp不一致?
实参与形参参数传递 void maino int max(int a, int b) int x, y, Z; int c scanf(%d%d”,&x&y) c=a>b? a: b z=max(x, y) return C, printf( %d, Z) 常量 实参 变量 形参:变量 表达式
实参 实参与形参 参数传递 void main() { int x, y, z; scanf(“%d%d”,&x,&y); z=max( x, y ); printf(“%d”,z) } int max(int a , int b ) { int c; c=a>b ? a : b; return c; } 常量 变量 表达式 形参:变量
实参与形参参数传递 void maino int max(int a, int b) int x, y,Z: int c scanf(%d%d", &x, &y) z=ax(x, y) c=asb? a: b printf(%d, z return c X ·············· ················ 5 5 Z
实参与形参 参数传递 int max(int a , int b ) { int c; c=a>b ? a : b; return c; } void main() { int x, y, z; scanf(“%d%d”,&x,&y); z=max( x, y ); printf(“%d”,z) } x 3 y 5 z a b c 5 3 5 5