当前位置: 代码迷 >> C语言 >> [讨论]关于return的问题
  详细解决方案

[讨论]关于return的问题

热度:337   发布时间:2007-10-29 15:20:40.0
[讨论]关于return的问题

今天做堆栈时不太明白return的用法
具体字函数是这样的:
datatype pop(stack*s,datatype&e)
{
e= s->elements[s->top];
s->top--;
return (1);

}
但是改成return(2) return(3) return(4) return(5)....return(100)结果都是正确的,用DEBUG单步跟踪,发现过程没区别
但是如果只是return 编译时会提示 函数必需有返回值,也就是说只有return不是return (0),我甚至换成换成负数return(-1)
都是正确的 return(0)也是正确的
问一下,return的具体用法,有没有什么特殊的用途?

搜索更多相关的解决方案: return  

----------------解决方案--------------------------------------------------------
这个函数里面返回什么都没有关系,不会有任何错误.
但我看这个函数应该是要返回栈顶元素值的吧.

return 是返回程序要求的值,对主函数,返回0表示正常结束,其他是非正常.
----------------解决方案--------------------------------------------------------

恩,这样说也可以,但是看看下面的程序,是老师PPT的内容:

uint PopS(seqstack *S,datatype&e)
{ if (EmptyS(S))
{ print (Stack Underflow);
return 0;
} //下溢
else
{ e= S->elements[S->Top];
S->Top--;
return 1;
}
}
那怎么解释呢?
老师说return 1有两层意思,1是说明有返回值,2是返回的数正常
这样对吗?好像与版主说的相反
exit(0)可以用版主的说法解释,用在return上好像不行

----------------解决方案--------------------------------------------------------
return的值是自己定义的,用于其调用函数来判断执行的结果。不知对不对
----------------解决方案--------------------------------------------------------
还好我是针对主函数才说的。

其他函数的返回值的意义由自己定义。
----------------解决方案--------------------------------------------------------
在C语言中,return 的作用是从被调用的函数返回到调用函数里,继续执行程序,并且,如果需要的话,它可以带回一个值,这个值就是被调用函数的操作结果。

----------------解决方案--------------------------------------------------------
  相关解决方案