3、函数声明放在什么位置? 放在定义变量的位置,即程序的数据说明部分 4、什么情况可以省略函数声明? 1)若函数返值是cha或n型,系统自动按int型处 理 2)被调用函数定义出现在主调函数之前 3)在所有函数定义之前,在函数外部做了函数声 明
3、函数声明放在什么位置? 放在定义变量的位置,即程序的数据说明部分 4、什么情况可以省略函数声明? 1) 若函数返值是char或int型,系统自动按int型处 理 2)被调用函数定义出现在主调函数之前 3)在所有函数定义之前,在函数外部做了函数声 明
例函数声明举例 /*ch8 5d#include <stdio. h> maino foat max(float x, float yi i float a mainO citation float a( float a, b float addO scanf(' int c c= add scanf("%f, o%f!ka&b);在函数外面做了 printi if( c=max(a, b) 声明 printf("Max is %odn",c) 所有调用函数 float add(; 不必再声明 float 4 foat max( float x, float y) Z-XIV i float z return ( Z=x>y?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型函数可不作函数说明 /*ch7_5.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); } 被调函数出现在主调函数 之前,不必函数说明 /*ch8_5.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(); #include <stdio.h> foat max(float x, float y); main() { float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("Max is %d\n",c); } foat max(float x, float y) { float z; z=x>y?x:y; return(z); } 在函数外面做了 声明, 所有调用函数 不必再声明
§8.5函数参数及其传递方式 ★形参与实参 形式参数:定义函数时函数名后面括号中的变量名 今实际参数:调用函数时函数名后面括号中的表达式 例比较两个数并输出大者 main( i int a, I canf( %od, %od", &a, &b) c=maxa, b),(main函数)c=max(ab) 实参 max(int x,iny)(max函数) printf" Max is%d",c) i int z ZXy?X y max(int x, int y return(z) 形参 int z z=x>y?xy return(z)
§8.5 函数参数及其传递方式 形参与实参 ❖形式参数:定义函数时函数名后面括号中的变量名 ❖实际参数:调用函数时函数名后面括号中的表达式 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); } 形参 实参
88.5函数参数及其传递方式 形参与实参 ◇说明: 实参必须有确定的值 形参必须指定类型 形参与实参类型一致,个数相同 形参在函数被调用前不占内存函数调用 时为形参分配内存:调用结束,内存释放
❖说明: ⚫实参必须有确定的值 ⚫形参必须指定类型 ⚫形参与实参类型一致,个数相同 ⚫形参在函数被调用前不占内存;函数调用 时为形参分配内存;调用结束,内存释放 §8.5 函数参数及其传递方式 形参与实参
例计算x的立方 内存的变化情况 #include <stdio.h> float c(float x) 1.2 i return(x*x*x) 1.728 maino i float a, p printf("please input value of a: " scant(%of", &a) 2 =c(a printf( Cube of % 4f is %/. 4fn", a,p) 运行情况: Please input value of a: 1.2
例 计算x的立方 #include <stdio.h> float c(float x) { return(x*x*x); } main() { float a, p; printf("Please input value of a:"); scanf("%f",&a); p=c(a); printf(”Cube of %.4f is %.4f\n",a,p); } x a p ×× ×× 1.2 1.2 1.728 内存的变化情况 运行情况: Please input value of a: 1.2