3、函数声明放在什么位置? 放在定义变量的位置,即程序的数据说明部分 4、什么情况可以省略函数声明? 1)若函数返值是char或nt型,系统自动按int型处 理 2)被调用函数定义出现在主调函数之前 3)在所有函数定义之前,在函数外部做了函数声 明
3、函数声明放在什么位置? 放在定义变量的位置,即程序的数据说明部分 4、什么情况可以省略函数声明? 1) 若函数返值是char或int型,系统自动按int型处 理 2)被调用函数定义出现在主调函数之前 3)在所有函数定义之前,在函数外部做了函数声 明
例函数声明举例 /*ch8 5.#include <stdio. h> main( foat max(float x, float y, i float d mainO Ciaration*k float al( float a, b float addO scanf( int c c= add scanf(8ab,在函数外面做了 printf c=max(a, b) 声明, printf(" Max is %od in,o;所有调用函数 float adde 不必再声明 float 4 foat max( float x, float y) Tyf float z return 1o?X:V 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, b, c scanf(%d, %od", &a, &b) mygb(man函数)c=max(ab) 实参 max(int x. int )(mx函数) printf(" Max is%d") In Z-XY!X max(int x, int y) 形参 return(z int 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); } 形参 实参
§85函数参数及其传递方式 形参与实参 令说明: 实参必须有确定的值 形参必须指定类型 形参与实参类型一致,个数相同 形参在函数被调用前不占内存函数调用 时为形参分配内存:调用结束,内存释放
❖说明: ⚫实参必须有确定的值 ⚫形参必须指定类型 ⚫形参与实参类型一致,个数相同 ⚫形参在函数被调用前不占内存;函数调用 时为形参分配内存;调用结束,内存释放 §8.5 函数参数及其传递方式 形参与实参
例计算x的立方 内存的变化情况 #include <stdio. h> float c(float x i return(x*x*x) p1.728 main i float a, p printf("Please input value of a: scanf(%f", &a) 1.2 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