你可以这么理解,比如我们定义了一个函数fun(),如果这个函数有返回值,那么在调用程序里面(比如主函数)就可以把这个函数当成一个数使用;如果没有返回值,那么通常他就是一个独立的语句存在.
比如fun函数里面有个return 0;表示返回值是零,那么在调用函数里面就可以存在诸如
a=fun();b=a+fun();if(fun()=0{};......这类的语句,表示a=0;b=a+0;if(00){};等等,当然也可能是返回一个变量的值,你个指针的值是一样的.
如果没有return 语句,那么函数没有返回值,调用函数里面就不能把他当做一个数值来使用,会出现:
fun();单独成句的语句,在fun()里面可能进行了一些操作,但不需要结果.
C语言自带的函数通常都有返回值,计算函数返回计算结果,操作函数返回操作结果(成功返回1,失败返回0)
参数和返回值是两码事,不要当成一个词.无参无返回值函数 void faction() { } //前面的void就是返回值的类型 'void'是空的意思,就是说返回值是空,也就是无返回值的意思有参无返回值函数 void faction(int i){ } //参数为整形的函数,且也是无返回值的.无参有返回值函数 int faction(){ } //返回值为int 型的函数,且是无参的.有参有返回值函数 char faction(int i) //返回值为char的函数,且参数是int 型
首先说明一下你的程序的问题与缺陷:
①.: return语句 只能返回一个值,而不能写成 "return h,l;"
下面是我的解法:
/*法一:使用引用*/
#includestdio.h
void?cal(intch,?intcl);?/*声明ch,cl为引用类型*/
void?main()
{
int?h=0,l=0;
cal(h,?l);??/*这里将h,l传入cal()*/
printf("%d,%d",h,l);?
}
void?cal(int?ch,?int?cl)
scanf("%d%d",ch,cl);/*这里为ch,cl赋值*/
-------------------------
/*法二:使用指针*/
void?cal(int?*ph,?int?*pl);?/*这里将ph,pl声明为指针*/
cal(h,?l);??/*将变量h,l地址传过去.*/
printf("%d,%d",h,l);
void?cal(int?*ph,?int?*pl)
scanf("%d%d",ph,pl);?/*为ph,pl赋值*/
------------------
以上两种方法都可以解决你说的问题.
有问题请追问.
函数的值(或称函数返回值)是指函数被调用之后,执行函数体中的程序段所取得的值,可以通过return语句返回.
return语句的一般形式为:
return 表达式;
或者:
return (表达式);
例如:
return max;
return a+b;
函数中可以有多个 return 语句,但每次调用只能有一个return 语句被执行,所以只有一个返回值.
一旦遇到 return 语句,不管后面有没有代码,函数立即运行结束,将值返回.例如:
int func(){
return a*b;
return b/a;
没有返回值的函数为空类型,用void进行说明.例如:
void func(){
printf("Hello world!\n");
一旦函数的返回值类型被定义为 void,就不能再接收它的值了.例如,下面的语句是错误的:
int a = func();
为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为空类型.