C语言中return怎么用,主函数中一定要用吗?

如题所述

return,从函数调用执行中返回,可以分两种情况:

1、void型

例如:

void f2()

{

int i=1;

//return;//这样也可以,不要这一句也可以

}

2、非void型

例如:

int f1()

{

int i=1;

return 1;

//return(i); //这样也可以

}

有时即使被调用函数是void类型 被调函数中的return也不是毫无意义的;对于void,在函数的最后一行代码,可以不用;其他地方,因为你要返回函数调用,所以必须要用。

对于非void,既然函数返回值类型定义为非void,那么肯定需要使用这个函数的返回值。比如返回值是函数运行结果,或者表明函数运行结果是成功还是失败。这种情况,即使是函数最后一行,也需要使用。

对于有些情况,没有return,编译器也不会报错,比如main函数(编译器会默认返回值为0,假设你的main函数返回值是int)。但是为了保持良好的习惯,还是建议使用。

比如你写的程序编译后需要在脚本中调用,我们可以通过检查你的程序的结束代码来判断你的程序的执行情况,成功或是失败。这时候的检查就依赖于你是否在main函数中正确使用了return。

扩展资料:

举例:

#include "stdio.h"

void function()

{printf("111111");

return;

printf("222222");

}

main()

{

function();

}

运行结果为:屏幕上只输出一串数字1 而没有2。 但是如果去掉function函数中的return语句 就可以同时输出一串数字2。这里的return其实还有个退出该程序的作用!也就是说在printf("111111");后面加了个return,就表示结束该函数,返回主函数中去了!

参考资料

百度百科_return(C语言语句)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-14
return,顾名思义,从函数调用执行中返回,可以分两种情况:
1)void
2)非void

对于void,在函数的最后一行代码,可以不用;其他地方,因为你要返回函数调用,所以必须要用。
对于非void,既然函数返回值类型定义为非void,那么肯定需要使用这个函数的返回值。比如返回值是函数运行结果,或者表明函数运行结果是成功还是失败。这种情况,即使是函数最后一行,也需要使用。

对于有些情况,没有return,编译器也不会报错,比如main函数 (编译器会默认返回值为0,假设你的main函数返回值是int)。但是为了保持良好的习惯,还是建议使用。比如你写的程序编译后需要在脚本中调用,我们可以通过检查你的程序的结束代码来判断你的程序的执行情况,成功或是失败。这时候的检查就依赖于你是否在main函数中正确使用了return。追问

返回值怎么用?

追答

main的返回值还是非main的返回值?

追问

非main

追答

比如,你需要一个函数,计算两个整型值之和。如果要用函数来实现,如下:
int sum(int a, int b)
{
return (a + b);
}

// 如何使用函数返回值,以在main函数中使用为例:
int main (int argc, char *argv[])
{
int val, val1, val2;
val1 = 1000;
val2 = 5;

val = sum(val1, val2); // 计算val1 + val2之和,函数调用结束后,返回二者之和,并将二者之和赋值给val

printf("%d+%d=%d\n", val1, val2, val);

return 0;
}

追问

嗯,谢谢!

本回答被提问者采纳
第2个回答  推荐于2017-10-09

在C语言中,return语句的作用是返回函数的值,如下代码:

#include<stdio.h>
int f(int a)  //定义函数f()
{
    return a*2;  //返回值a*2
}
int main()  //定义main()的类型为int
{
    int a;
    scanf("%d",&a);
    printf("%d\n",f(a));  //调用函数f(),并输出函数的返回值
    return 0;
}

在上述程序中的fun()函数中,利用return语句返回值a*2的值,在main()主函数中,因为定义其类型为int(整型),所以返回值0,以检测是否运行正常。

当然,在C语言中,如果定义函数的类型为void(无类型),则无需运用return语句,main()主函数也一样,如下代码:

#include<stdio.h>
void f(int a)  //定义函数f()
{
    printf("%d\n",a*2);  //输出a*2的值
}
void main()  //定义main()的类型为void
{
    int a;
    scanf("%d",&a);
    f(a);  //调用函数f()
}

两个程序的作用相同,都是输出所输入数据的两倍,区别在于函数的类型。

第3个回答  2015-01-18
Return是程序的返回值,void 开头的函数不需要return,如void main()追问

(⊙o⊙),那返回键怎么用?

追答

返回表示向主函数返回一个值,比如a=sum(b);就是把sum函数的返回值给了a

相似回答