例、函数说明举例 main() { float add(float float);/*function declaration*/ float a,b,c; scanf("%f f"&a,&b); add(); c=add(a,b); printf("sum is %f",c); 主调函数 数说明 float add(float x,float y) 数说明 float z; 行) z-x+y; return(Z); 米乙
例 函数说明举例 main() { float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("Max is %d\n",c); } max(float x, float y) { float z; z=x>y?x:y; return(z); } int型函数可不作函数说明 (Borland C++不行) float add(float x, float y) { float z; z=x+y; return(z); } main() { float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f",c); } 被调函数出现在主调函数 之前,不必函数说明 main() { float add(float,float); /*function declaration*/ float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f",c); } float add(float x, float y) { float z; z=x+y; return(z); } float add();
1.函数参数的传递传值、传地址 2.地址参数举例例题: swap(int *p,int *q) convert(int a,int n) inversion strcon(char a,char b) sushu(int m) maopao(int a,int n) 3.递归 n! fab(n) 4.变量全局局部
1.函数参数的传递 传值、传地址 2.地址参数举例例题: swap(int *p,int *q) convert(int a,int n) inversion strcon(char a,char b) sushu(int m) maopao(int a,int n) 3.递归 n! fab(n) 4.变量 全局 局部
函数参数及其传递方式 久塔形渗与实参 ·形式参数:定义函数时函数名后面括号中的变量名 ·实际参数:调用函数时函数名后面括号中的表达式 例比较两个数并输出大者 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(intx,inty) return(z); 形参 int z; z=x>y?x:y, return(z);
函数参数及其传递方式 – 形参与实参 • 形式参数:定义函数时函数名后面括号中的变量名 • 实际参数:调用函数时函数名后面括号中的表达式 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); } 形参 实参
)函数参数及其传递方式 ★形参与实参 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 说明: ●实参必须有确定的值 ●形参必须指定类型 ●形参与实参类型一致,个数相同 ●若形参与实参类型不一致,自动按形参类型转换一 函数 调用转换 ●形参在函数被调用前不占内存;函数调用时为形参分配内存; 调用结束,内存释放
❖说明: ⚫实参必须有确定的值 ⚫形参必须指定类型 ⚫形参与实参类型一致,个数相同 ⚫若形参与实参类型不一致,自动按形参类型转换———函数 调用转换 ⚫形参在函数被调用前不占内存;函数调用时为形参分配内存; 调用结束,内存释放 函数参数及其传递方式 形参与实参 ❖形式参数:定义函数时函数名后面括号中的变量名 ❖实际参数:调用函数时函数名后面括号中的表达式