问题: main( maino 实参可以是表达{ 式吗? Int X,, Z output) 如果实参和形参 的类型不一样? scanf(%d%d”,&X,&y) z=max(x, y) printf((%d”,z) void output() printf( 1n”); int max(int a, int b printf(* very good *n printf( 大大大大大大大大大大大大大 Ⅶ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 返回值类型函数名(形式参数表) nt 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 f
返回值类型 函数名(形式参数表) { …… } 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、返回值类型 n函数返回一个值,合法类型 return (exp); 函数的返回值
2、返回值类型 问题: ■函数返回一个值,合法类型 return(f man(如果返回值的类 ■函数不返回值,void 型与 return return;或省略 int X, y, Z:;(exp)中的exp不 返回值类型缺省是int 致? maino scanf(%d%d”,8x,&y) z=max(x,y) pint("%d”,z) output int max(int a, int b void output( c pin(”.*****n) printf(* very good *In) c=a>b? a: b pinf***水水**n”); return (c)
main() { …… output(); …… } void output( ) { printf(”**************\n”); printf(”* very good *\n”); printf(”**************\n”); } 2、返回值类型 n 函数返回一个值,合法类型 return (f); n 函数不返回值,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”,8x,&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, int c scant(“%d%d”,&X,&y) z=max(x, y) c=a>b? a: b printf(9d”,z) return c a 。。。。··。。· ·········.···· y 5 5
实参与形参 参数传递 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