函数的返回值(初学者)
通常,希望通过函数使主调函数得到一个确定的值,这就是函数的返回值。
说明:1、函数的返回值是通过函数的return语句获得的。
(1)return语句将被调函数中的一个确定值带回主调函数中去。
(2)若需要从被调函数带回一个值供主调函数使用,被调函数必须包含return语句。如果不需要就可以不带。
(3)一个函数语句可以有一个以上的return语句,执行到哪一个return语句,哪一个语句起作用。return语句后面的括弧也可以不要。如:return 2;等价于:return(2);
(4)return后的值可以是一个表达式。
例:int max(int x,int y);
{
return(x>y?x:y);
}
2、(1)函数的返回值应当属于某一个确定的类型,在定义函数时指定函数返回值的类型。
例:int max(float x,float y) /*函数的值为整型*/
(2)在C语言中,凡不加类型说明符的函数自动按整形处理。
3、(1)在定义函数时指定函数的类型一般应和return语句中的表达式类型一致。如果函数值的类型和return语句表达式的值不一致,则以函数类型为准。对数值型数据可以自动进行类型转换。
(2)对于不带回值的函数,应当用“viod”定义函数为无类型(空类型)。这样,系统就保证不使函数带回任何值。此时,在函数体中不得出现return语句。
例:(反例)
#include <stdafx.h> #include<stdio.h> void main() { int max(float x,float y); float a,b; int c; scanf("%d%d",&a,&b); c=max(a,b); printf("Max is %d:\n",c); } int max(float x,float y) { float z; z=x>y?x:y; return(z); }
正例:
#include <stdafx.h> #include<stdio.h> void main() { float max(float x,float y); float a,b; float c; scanf("%f%f",&a,&b); c=max(a,b); printf("Max is %f:\n",c); } float max(float x,float y) { float z; z=x>y?x:y; return(z); }