8.3.2函数的返回值 令调用一个函数一般都希望返回一个确定的值 有关函数值的几点说明: 1.若需要返回值则用 return语句; 2被调函数中可用多个 return语句,执行哪一个由 程序执行情况来定。 例:函数中有如下语句 if(a>b) return (a) return(b) 3 return后面的括号可省,如: return a; 冷4.一旦执行了语句 return, return后面的语句(若有) 就不再执行 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 8.3.2 函数的返回值 ❖ 调用一个函数一般都希望返回一个确定的值。 ❖ 有关函数值的几点说明: ❖ 1.若需要返回值则用return语句; ❖ 2.被调函数中可用多个return语句,执行哪一个由 程序执行情况来定。 例:函数中有如下语句 ❖ if(a>b) return(a); ❖ else return(b); ❖ 3.return后面的括号可省,如:return a; ❖ 4.一旦执行了语句return,return后面的语句(若有) 就不再执行
8.3.2函数的返回值 4 return后面的值可以是一个表达式, 如: return(x>y?x:y); 5函数值的类型是在定义函数时指定的 如 int max(X, y float min(a, b) double abc(d1, d2) 汪 (1)函数定义时,函数名的括号后无“;” 2)未加类型说明的函数自动按整型处理 冷(3)定义函数时,函数值的类型一般与 return后面 表达式的类型一致若不一致,则以函数值为准。 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 8.3.2 函数的返回值 ❖ 4.return 后面的值可以是一个表达式, ❖ 如:return(x > y ? x : y); ❖ 5.函数值的类型是在定义函数时指定的 ❖ 如: int max(x, y) ❖ float min(a,b) ❖ double abc(d1,d2) ❖ 注意: ❖ (1)函数定义时,函数名的括号后无 “ ;” ; ❖ (2) 未加类型说明的函数自动按整型处理; ❖ (3) 定义函数时,函数值的类型一般与return 后面 表达式的类型一致.若不一致,则以函数值为准
例8.5:函数值类型为整型,而返回值的类型是实型,最后 以整型值返回。 ☆「 max(float X, float y) ☆man i float a, b scanf(%of%of, &a, &b) 输入:1.52.5, c=max(a, b); 输出: max Is2 printf(" max is %od\n,c) max(float x, float y) 未说明函数类型, float z; 自动按整型处理 z=Xy?X y return(z 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 例8.5: 函数值类型为整型,而返回值的类型是实型,最后 以整型值返回。 ❖ 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) ; ❖ } ❖ max(float x, float y) ❖ { float z; ❖ z=x>y ? x : y; ❖ return(z); ❖ } 输入: 1.5 2.5 输出:max is 2 未说明函数类型, 自动按整型处理
6.当函数中无 return语句时,可能返回一个不确定的或无 用的值 %o main( .s int a, b,c 86.c a=p1();b=p2()C=p1( printf(a=%d, b=%d, c=%d\ n,a, b,c); s pl()(printf( n);} p2(){ printf( i am happy n'}|运果 am happy 卖☆☆ 6,b=12,c=6 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 6.当函数中无return 语句时,可能返回一个不确定的或无 用的值 ❖ main( ) ❖ { int a, b, c; ❖ a=p1( ); b=p2( ); c=p1( ); ❖ printf(“a=%d,b=%d,c=%d\ n”,a, b, c); ❖ } ❖ p1( ) {printf(“*****\ n”); } ❖ p2( ) {printf(“ I am happy!\ n”); } 运行结果: ***** I am happy! ***** a=6,b=12,c=6 8_6.c
7为明确表示不带返回值,可用void(无值,空类型)定义函数。 例8.7: ☆「man 此时正确的调用 6s int a, b,c pl().p2();p3( a=pl1();b=p2()c=p1() printf( a=%d, b=%d, c=%d\ n, a, b, c); 6 void pl()(printf(c*****\n);) 6o void p2()printf( I am happy!\ n):) 编译时指出: Type mismatch in redeclaration of pl,p2意即 在定义函数p1,p2时类型不匹配 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 7.为明确表示不带返回值,可用void(无值,空类型)定义函数。 ❖ 例8.7: ❖ main( ) ❖ { int a,b,c; ❖ a=p1( ); b=p2( ); c=p1( ); ❖ printf(“a=%d, b=%d, c=%d\ n”,a, b, c); ❖ } ❖ void p1( ) {printf(“*****\ n”); } ❖ void p2( ) printf(“I am happy!\ n”); } 编译时指出:Type mismatch in redeclartion of ‘p1’ , ‘p2’意即: 在定义函数 p1, p2 时类型不匹配 此时正确的调用: p1( ); p2 ( ); p3 ( );