关于C语言中一个函数内多个return语句的问题

CST08055 2011-11-14 07:29:03
int DestroyList( SqList &L )
{ if (!L.elem) return 0;
free(L.elem);
L.elem=NULL;
L.length=0;
L.listsize=0;
return 1;
}
这是一个C函数,我的问题是:if (!L.elem) return 0;这个return 0执行后,后面的语句(包括return 1;)还会执行吗?
我为此困扰了好久,希望有大神能详细解答!
...全文
1326 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzf368 2011-11-15
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wizard_tiger 的回复:]

遇到return就跳出函数了,后面都不执行了。
[/Quote]

right
xiaoshu163000 2011-11-15
  • 打赏
  • 举报
回复
这个问题很深奥吗???难道我又小白了
lbxg 2011-11-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 feidegengao 的回复:]

建议查找return语句的用法
[/Quote]

我也觉得如此
心死 2011-11-15
  • 打赏
  • 举报
回复
return执行就跳出了
wizard_tiger 2011-11-15
  • 打赏
  • 举报
回复
遇到return就跳出函数了,后面都不执行了。
muku9527 2011-11-15
  • 打赏
  • 举报
回复
LZ 结贴吧,0%的结贴率,上面的人意见一致。没有悬念了。
AnYidan 2011-11-14
  • 打赏
  • 举报
回复
每一个可控分支应该有一个出口,

google flow chart
goldbeef 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 keiy 的回复:]

if (!L.elem)
如果这个表达式为真
return 0;
那函数就返回0,后面的程序不可能被执行了
当(!L.elem)为假时,执行后面的程序,直到return 1;
[/Quote]正解;
return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
renjianguokeivor 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhaghi 的回复:]
其实是这样的,你就懂了
int DestroyList( SqList &L )
{ if (!L.elem)
{
return 0;
}
else
{
free(L.elem);
L.elem=NULL;
L.length=0;
L.listsize=0;
return 1;
}
}
[/Quote]
孤寂-摩天輪 2011-11-14
  • 打赏
  • 举报
回复
一个函数只能有一个返回值,所以当前面的return语句执行后后面的不再执行
wjjll123 2011-11-14
  • 打赏
  • 举报
回复
必须肯定一定不执行了。
南山道人 2011-11-14
  • 打赏
  • 举报
回复
就如switch结构里面遇到break语句一样
modicum_ck 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 keiy 的回复:]
if (!L.elem)
如果这个表达式为真
return 0;
那函数就返回0,后面的程序不可能被执行了
当(!L.elem)为假时,执行后面的程序,直到return 1;
[/Quote]

只执行一次return,执行return后,那么关于这个函数后面的代码都不会执行了,不管后面写的什么东西。
pengsheng1988 2011-11-14
  • 打赏
  • 举报
回复
return 之后,就跳出函数了。一个函数有几个分支的话,有几个return很正常,意思就是执行完该分支就跳出函数,不往下执行了。
苏客达 2011-11-14
  • 打赏
  • 举报
回复
不会,只要遇到return语句函数就返回。
JIN_H_ 2011-11-14
  • 打赏
  • 举报
回复
必须不会啊。函数在执行的过程中return一执行,立刻返回上级函数中。所以return后面的语句不会再执行了。
菜鸟啊超 2011-11-14
  • 打赏
  • 举报
回复
调用一个有返回值的函数时,当遇到一个return,注意是任何一个return,就会跳出函数调用,即函数调用结束。
feidegengao 2011-11-14
  • 打赏
  • 举报
回复
建议查找return语句的用法
绿领巾童鞋 2011-11-14
  • 打赏
  • 举报
回复
分支有RETURN 很正常啊
ProgrammingRing 2011-11-14
  • 打赏
  • 举报
回复
不会执行。。这类问题你可以debug下嘛
加载更多回复(6)

70,018

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧