82第八章函数(阅读).ppt

82第八章函数(阅读)

例 无参函数的定义与调用。 void welcome ( ) { printf(*********************************\n); printf( Welcome to China \n); printf(*********************************\n); } main( ) { welcome( );} 函数定义的一般形式: 函数类型标识符 函数名 (参数表列) { 函数体 } 说明: 1.如果是无参函数,在圆括号中没有参数表列。 2. 没有类型标识符,缺省为int型。 1.实参与形参的类型必须一致或兼容,形参的类型要在函数定义时指定.如: int max(int x,int y) 2.实参变量对形参变量的数据传递是值传递,实参与形参在内存中占用的是不同的单元。 3.只有在调用函数时,系统才给形参分配存储单元,调用结束后,形参单元被释放。 展开1.实参与形参的类型必须一致或兼容。 比如实参和形参分别为float和int类型,此时要进行转换,例如下例中的实参a的值为3.5,而对应的形参x为int类型,则先将3.5转换为3再传递过去. int max(int x, int y) /*自定义函数*/ { int z; if(xy) z=x; else z=y; return z; } main() /*主函数*/ { int c; float a,b; scanf(“%f,%f”,a,b); c=max(a,b); /*主函数调用自定义函数*/ printf(“最大值=%d”,c); } 展开2. 实参和形参之间的参数传递是单向的值传递,而且只能由实参传给形参. 传递过程: 1)当程序调用函数时,由形参的定义开辟相应的存储空间 2)然后数据由实参传给形参所在的存储空间; 3)当调用结束时,函数会以返回值的形式提供结果,而形参定义时开辟的空间将被释放. #当然,这一系列过程中实参仍然维持原值. 即,形参值的改变并不影响到实参! 如果希望在调用函数后得到一个确定的值(结果),我们就要取得返回值.此时要使用赋值语句把函数的结果赋值给一个变量. (一).函数的返回值由return获得.如: return(z); 或 return z; 如: 1. int max(int x,int y) { …… } :此时函数(返回值)的类型为int 2. double min(int x,int y) { …… } :函数(返回值)的类型为double 3. char letter(char c) :此时函数(返回值)的类型为char 返回值的例子: 1.返回两个数的最大值。如: int max(int x,int y) {int z; if(xy) z=x; else z=y; return z; } 或 int max(int x,int y) {if(xy)return x; else return y; } 2.求两数之和。如: float add(float x,float y) {float z; z=x+y; return z; } 或float add(float x,float y) {return x+y; } 请思考. 求两数之和1。如果程序改为如下,结果会如何: int add(float x, float y) {return x+y; } main() { float a=4.7,b=3.5,c; c=add(a,b) printf(“%f,%f,%f\n”,a,b,c); } 请思考. 求两数之和2。如果程序改为如下,结果会如何: float add(int x, int y) {return x+y; } main() { float a=4.7,b=3.5,c; c=add(a,b) printf(“%f,%f,%f\n”,a,b,c); } (二).函数的类型决定返回值的类型,void表示没有返回值。 例 welcome函数的定义与调用。 void welcome ( ) { printf(***************

文档评论(0)

1亿VIP精品文档

相关文档