C语言中什么时候该用return,什么时候不用?

如题所述

当你定义函数的时候才要用,有些函数有返回值,也就是调用一个函数之后,该函数返回一个值给你。
如 int fun(int a) 这个函数就要用return ,而且return 后面跟的变量或字面常量应该是整形才对,如果是不能自动转换成整形的数据如double型的,系统就会报错,但是如果return一个short型的变量,该变量会被自动转化为int型变量。
总之,return后面跟的变量或者表达式结果的类型要与函数的类型一致。
现在知道为什么 int main() 最后要 return 0;了吧(其实为什么是0我也不知道,应该有什么含义吧)
函数类型之中,有一个类型叫做空类型,也就是void
如void fun(int a)
这个函数里面可以用return (后面不跟数据),也可以把return语句省略。这时函数调用到最后一个右大括号时结束。
一般用void的话就是没有返回值和不需要返回值的了,如调用一个输出函数,这个函数就没必要返回了,事实上这个函数只管输出就好了,也没有什么值要返回的,另一种是用指针传址的时候,因为你传的是地址,函数根据你的地址直接对数据进行操作了,这是就不需要返回值了。
因为对数据的操作在函数里已经进行了(返回值的作用一般是赋值或者作为参数的赋值的话可以对变量直接操作,也就是用指针操作,也可以把返回值赋值给变量)
另外,return语句还有另一个功能就是结束函数调用,有时候,当某种情况发生的时候(或者说满足一定情况的时候),必须结束程序,如当你申请动态空间失败的时候,由于这是一个严重错误,所以必须强制终止程序,这时就可以用return语句来提前结束运行。
如 int *p=(int *)malloc(sizeof(int)*int)
if(p==NULL)
return;
不过要注意,return函数值是结束当前函数的调用,只有在主函数中return语句才具有结束程序的能力,在调用的函数中,只是结束你调用的函数罢了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-07-03
void就是无返回值类型,这第一个程序定义的fun函数没有返回值类型,所以你调用的时候不会有任何作用,定义的函数是想将两个数对调一下,你可以在后面加一句printf("对调后的结果为%d%d",a,b);不见得非要用return,如果你想用return话,定义函数时前面应该有一个返回值类型,如int fun(int a,int b)则表明该函数返回的是个整型,第二个也是一样,你调用函数fun的时候,函数中没有任何操作。我给你举个例子,你看你明白吗。定义一个比较三个数大小,输出一个较大的,int max(int x,int y,int z)
{
if (x < y)
x = y;
if (x < z)
x = z;
return x;
}这个就要用return,因为要输出一个较大的数,如果还不懂的话,可以hi我啊!本回答被网友采纳
第2个回答  2015-06-26
void就是无返回值类型,这第一个程序定义的fun函数没有返回值类型,所以你调用的时候不会有任何作用,定义的函数是想将两个数对调一下,你可以在后面加一句printf("对调后的结果为%d%d",a,b);不见得非要用return,如果你想用return话,定义函数时前面应该有一个返回值类型,如int fun(int a,int b)则表明该函数返回的是个整型,第二个也是一样,你调用函数fun的时候,函数中没有任何操作。我给你举个例子,你看你明白吗。定义一个比较三个数大小,输出一个较大的,int max(int x,int y,int z)
{
if (x <; y)
x = y;
if (x <; z)
x = z;
return x;
}这个就要用return,因为要输出一个较大的数,如果还不懂的话,可以hi我。
第3个回答  2011-01-01
return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值
时,这个值就成为函数的返回值;例如,下面的函数是用来获得三个数值的最大值,
int max(int x,int y,int z)
{
if (x < y)
x = y;
if (x < z)
x = z;
return x;
}
当return语句没有提供一个数值时,可以看做是该函数的一个中断点。例如,下面的函数是获得数组array中的值等于val的序号;
void max(int array[10], int length ,int val, int* index)
{
int i;
for(i=0; i<length; i++)
{
if(array[i] == val)
{
*index = i;
return;
}
}
}

参考资料:http://apps.hi.baidu.com/share/detail/2543131

第4个回答  2011-01-01
当函数运行时,一定是在函数体中写在的最后结尾位置的一个语句运行后,函数才结束,就可以不使用return
否则都必须使用return,这时一定需要使用if判断是否出现需要结束的条件,在满足条件时返回,例如:
if(x == 0 )return;
……
当某个变量的内容为0时,函数结束,否则做其他的操作
相似回答