C语言return怎么理解?求解惑
4个回答
展开全部
分情况了,如果是main 函数return, 那就相当于程序退出,和exit一个效果。
如果是子函数return, 那就是返回调用者。
如果在函数末尾并没有return, 只有个{},但系统遇到函数结束标志,就是},会自动return返回。
细节方面,编译器不同,处理也有细微不同,但并非本质上的不同。
但return并不仅仅是返回,它要做下面的动作,
系统在返回调用者前,要销毁存数据的栈,也就是释放本地内存
返回值给调用者(如果调用者需要有返回值的话)
清理子函数的资源,像打开的文件,加上的锁等
本质上,Mian函数也是有个调用者的,是系统来起动这个函数的一个函数。main函数返回或者exit是返回给这个调用者的,这样子函数,main函数return本质上是一样的,都是返回给上级调用者。
展开全部
第一个作用,也就是他的真实作用
返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么
比方主函数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治理就起到了终止语句的作用了
等用得多了还会有些妙用的,你要自己慢慢体会
返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么
比方主函数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循环语句是错的!应该会报错
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看函数怎么定义的
若为int fun()返回就是int型的
char fun()返回为char
void fun()可以不返回
char* fun()返回 指针
若为int fun()返回就是int型的
char fun()返回为char
void fun()可以不返回
char* fun()返回 指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询