你可以这么理解,比如我们定义了一个函数fun(),如果这个函数有返回值,那么在调用程序里面(比如主函数)就可以把这个函数当成一个数使用;如果没有返回值,那么通常他就是一个独立的语句存在。
比如fun函数里面有个return 0;表示返回值是零,那么在调用函数里面就可以存在诸如
a=fun();b=a+fun();if(fun()>=0{};……这类的语句,表示a=0;b=a+0;if(0>0){};等等,当然也可能是返回一个变量的值,你个指针的值是一样的。
如果没有return 语句,那么函数没有返回值,调用函数里面就不能把他当做一个数值来使用,会出现:
fun();单独成句的语句,在fun()里面可能进行了一些操作,但不需要结果。
C语言自带的函数通常都有返回值,计算函数返回计算结果,操作函数返回操作结果(成功返回1,失败返回0)
(1)返回值是将定义的函数进行计算后最终得到个值,把它作为最终值返回到主函数中去(2)返回值这样用:return
s;注意后面的分号不能省略。(3)你既然定义过函数无返回值就不能再返回了,注意如果没有任何定义的话,系统会自动定义为int型。(4)void是没有原函数的,它只作为一个函数的计算过程,如果一个函数需要有一个最终结果就需要一个返回值。(5)你所说的最后一问我还没见过,如果你有原程序的话可以给我发过来。
如果没有返回值的话,则就是在函数的结尾直接使用RET指令,然后CPU自动的从堆栈中取出断点处的地址,恢复调用之前的CPU状态,然后继续执行函数后面的指令。
函数的返回值是存放在一个调用堆栈中,被调函数返回后,主调函数从堆栈中取出返回值,放入到一个变量中。然后就可以使用这个变量了。这就是返回普通的值,返回指针型变量的话,就复杂些。
这些东西可以联系编译原理和汇编语言,加以理解。
所谓返回值,就是人们想要知道函数或者程序所得到 的结果而设计的函数或者程序结束时给出一个值。比如:我们编写一个加法函数,肯定想知道加完过后的结果是什么,那么我们就指定这个结果为该加法程序的返回值。
关于返回值的返回:
1、函数调用语句本身代表其返回值:例如:fun(a);那么“fun(a)”就是这个返回值。
2、可以把返回值存到对应类型的变量之中。例如:int a=fun(b);
3、返回值是多种多样的,可以是各种各样的,int short char double 等等,还可以是指针或者结构体。在数据结构的二叉树部分,某一个函数的返回值是一个带有两个指针的结构体。
1、函数定义为:int max(int a, int b),这是个函数是获得a,b两个整数值较大的那个,在函数的前面有个int值,说明这个函数返回的是一个整数类型,所以他的返回类型为整型,如果a值比较大就会返回a,这个a的值被称为返回值。
例如:
#include
int max(int a,int b){
int z;
if(a>b)
z=a;
else
z=b;
return(z);
}void main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d \n",c);
} //在主函数中调用函数int max(int a,int b),如果我们输入1,2,则最后显示2,2为返回值,而函数int max(int a,int b)中的返回类型为整型。