问个菜鸟级别的问题!!
在子程序调用完的时候
是不是 return 语句必须写在该子程序的末尾啊
不然就会产生不同的结果啊?
问题点数:0、回复次数:12Top
1 楼Salam2001(Upgrading : C++ and Data Structure ...)回复于 2005-04-02 16:33:52 得分 0
首先,C/C++ 里没有子程序的概念,都是函数。
如果,函数有返回值,那么要用 return 语句返回一个值,不然编译报错。
如果,函数被定义为 void 类型,那么有没有 return 都无所谓。Top
2 楼cumt_TTR(饮水机)回复于 2005-04-02 16:36:44 得分 0
我不是这个意思,我是说,那个return 语句放在不同的地方回产生不同的结果啊
前提是 该返回直不会随着 该语句的位置的改变而改变了
楼下的大虾帮忙啊Top
3 楼arrowcy(长弓手)回复于 2005-04-02 16:43:58 得分 0
只要return语句一执行,函数里面的其他语句就不会在执行了Top
4 楼Salam2001(Upgrading : C++ and Data Structure ...)回复于 2005-04-02 16:44:58 得分 0
我是说,那个return 语句放在不同的地方回产生不同的结果啊
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你想在哪里返回就在哪里写 return; 这个没有严格规定,只要是能写语句的地方,就可以写return 返回。就是看需要罢了。Top
5 楼cumt_TTR(饮水机)回复于 2005-04-02 17:03:29 得分 0
只要return语句一执行,函数里面的其他语句就不会在执行(引用arrowcy(长弓手))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
意思是说,我将return语句写在中间的话我后面的语句都没用了?
是不是这样啊?
期待中Top
6 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-02 17:06:01 得分 0
如果return正常执行了,程序就返回了,后面的语句就不会执行了Top
7 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-02 17:06:39 得分 0
return不一定放到尾部,例如达到某种条件,提前退出函数Top
8 楼MagicCarmack(MagiC++)回复于 2005-04-02 17:11:44 得分 0
意思是说,我将return语句写在中间的话我后面的语句都没用了?
是不是这样啊?
期待中
前提是你写的那句return 语句必须被执行!
如果没有被执行,也就没有什么影响的!
例如:
int f()
{ int i=0;
//do something
if(0==i)
return 0;//如果i==0,后面的就不会被执行了,返回0
else
return 1;
}
Top
9 楼jdh2010(小金)回复于 2005-04-02 17:12:41 得分 0
对的,写了return,便不再执行后面的语句,直接返回调用环境了Top
10 楼arrowcy(长弓手)回复于 2005-04-02 21:13:44 得分 0
只要return语句一执行,函数里面的其他语句就不会在执行(引用arrowcy(长弓手))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
意思是说,我将return语句写在中间的话我后面的语句都没用了?
是不是这样啊?
期待中
=================================================================
注意,我说的是只要一执行到return语句,其他语句就没有用了
就像楼上几位解释的那样,就算return语句在函数的中间某个位置,只要他被跳过去了而没有执行,那么他后面的语句还是可能有效的,例如那个return语句被放在一个if语句中,如果那个if不成立,那么函数将继续从if后面执行下去的Top
11 楼cao12m(★草上飞★)回复于 2005-04-02 21:42:48 得分 0
这也问啊 当然拉你写二个RETURN有那样的判断条件不管怎么只能执行一个Top
12 楼LOWGUN(两只白袜)回复于 2005-04-03 10:23:27 得分 0
位置不关紧要,关键是程序的逻辑要对,如果你的程序中有很多很多条件判断,一个函数有100行,return完全有可能放在第一行.Top




