C语言return怎么理解?求解惑

 我来答
blueskyzh
2015-01-06 · TA获得超过1289个赞
知道小有建树答主
回答量:450
采纳率:100%
帮助的人:181万
展开全部

分情况了,如果是main 函数return, 那就相当于程序退出,和exit一个效果。

如果是子函数return, 那就是返回调用者。


如果在函数末尾并没有return, 只有个{},但系统遇到函数结束标志,就是},会自动return返回。

细节方面,编译器不同,处理也有细微不同,但并非本质上的不同。


但return并不仅仅是返回,它要做下面的动作,

  1. 系统在返回调用者前,要销毁存数据的栈,也就是释放本地内存

  2. 返回值给调用者(如果调用者需要有返回值的话)

  3. 清理子函数的资源,像打开的文件,加上的锁等




本质上,Mian函数也是有个调用者的,是系统来起动这个函数的一个函数。main函数返回或者exit是返回给这个调用者的,这样子函数,main函数return本质上是一样的,都是返回给上级调用者。

稳住大神
推荐于2016-07-01 · TA获得超过123个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:190万
展开全部
第一个作用,也就是他的真实作用
返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么
比方主函数int main()
{}这里就必须有一个return,只有void时可以不用返回值。
功能函数
int fun()
{
return 1;
}
这个时候fun函数的作用就是返回一个int 类型的值,可以直接拿来用比方int a=fun();
这里就相当于int a=1;
另外一个作用return后面的语句不会执行,我们可以用它来结束程序
比方找出三个数种最大的一个数

void main
{
int a,b,c;
if(a>b)
if(b>c)
{
return printf("最大值为%d",a);
}
.....
}
在这里if(b>c)
我们就可以直接得出a是最大了,就没必要执行下面的语句了,return治理就起到了终止语句的作用了
等用得多了还会有些妙用的,你要自己慢慢体会
更多追问追答
追问
w(char a[],char b[])
{
int i,t;
for(t=0;a[t]!='\0';)
t++;
for(i=0;i<5;i++)
a[i+t]=b[i];
a[i+t]='\0';
}我这种要怎么用?
追答

你这个程序是要做什么呢?你这个程序是错误的!

1.w既然是函数,那么声明的时候应该有类型说明,不返回值则是void
2. 你那里面两个for循环语句是错的!应该会报错
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
通窍且柔和灬茱萸8
2015-01-06 · 超过16用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:34.2万
展开全部
看函数怎么定义的
若为int fun()返回就是int型的
char fun()返回为char
void fun()可以不返回
char* fun()返回 指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2021-04-10 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式