C语言中,何时使用return

例如:ST *Init_Sq(int len) /*初始化,赋值*/
{
int i;
ST *S=(ST *)malloc(sizeof(ST));
float sco;
char *n;
S->len=len;
for(i=1;i<=S->len;i++)
{
n=S->elem[i].Name;
printf("请输入第%d个学生的信息\n",i); /*依次输入学生信息*/
printf("请输入学号(整型):");
scanf("%d",&S->elem[i].Num);
printf("请输入成绩(浮点型):");
scanf("%f",&sco);
S->elem[i].Score=sco;
printf("请输入姓名:");
scanf("%s",n);
}
return S;
}
void main()
{
int j=-1; /*菜单选择项*/
int K;/*要查找的关键字,即学生的学号*/
int suc;
ST *st;
st= Init_Sq(3); /*创建学生信息表,长度随意修改*/
Print(*st);
while(j) /*下面是功能菜单*/
{
printf("请选择操作:\n");
printf("1: 顺序查找\n");
printf("2: 二分查找\n");
printf("0: 退出程序\n");
scanf("%d",&j);
switch(j)
{
case 0: break;
case 1: printf("请输入要查找的学生的学号:");
scanf("%d",&K);
suc=Search_Seq(*st,K);
if(suc)
PrintOne(st,suc);
else printf("查找失败! \n ");
break;
case 2: Order(st); /*对学生信息表进行排序*/
printf("请输入要查找的学生的学号:");
scanf("%d",&K);
suc= Search_Bin(*st,K);
if(suc)
PrintOne(st,suc);
else printf("查找失败!\n ");
break;
default: printf("输入无效,请重新输入!\n");
break;}
}
}

这是程序段,为什么里面需要return,教教我需要怎么使用return,何时使用

如果有个自定义函数fun,你想让fun处理数据,如果你希望它处理完后将结果反馈给主调函数,那就用return返回要给主调函数的值,如果你调用fun只是为了实现一定的功能,不需要给主调函数结果,那就不用return。
对于return的使用,没有严格限制,只是根据你个人解决问题的需要来确定是否要用它追问

我的这段程序代码上为啥要用return s

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-07
看函数定义类型 主函数需要调用函数返回一个函数值时一般都会定义函数为int,float等等函数值,同时return只能返回一个值不能返回多个值
当不需要返回值 调用函数就是void类型,此时为空类型 函数调用是不需要返回值 也不用在最后使用return语句。追问

我的这段程序代码上为啥要用return s

第2个回答  2012-06-07
比如说在一个函数里面,你要的类型不是void的,这是时候你就需要返回一个值,函数类型是什么类型,返回的值就是什么类型,比如函数类型是int则返回int。当你函数这样设计之后,你在主函数调用该函数是就会返回一个值,这是你可以把该值输出。我举个简单例子吧:
#include <stdio.h>
int A(int n)
{
return n+1; //整型类型的函数A返回一个整型的值
}

int main()
{
printf("%d\n", A(2)); //调用A函数后返回一个值,把该值输出
return 0;
}追问

我的这段程序代码上为啥要用return s

追答

在这里S是一个指针,你的类型是指针类型,所以要返回一个指针

本回答被提问者采纳
第3个回答  2020-01-29
加不加括号没有特别要求,这主要是程序的书写风格,较好的程序设计风格是:
简单的数据类型不用加括号,比如
return
10;
return
'a';
表达式加括号,比如
return
(a
+
b);
return
(f1()
+
f2());
第4个回答  2012-06-07
return就是返回一个值给调用者咯,这么简单的追问

我的这段程序代码上为啥要用return s

追答

你的函数就声明为必须返回一个指向ST的指针

相似回答