返回值是什么意思?在什么情况下需要加返回值?

最好举一个例子,这个问题困扰了很久,现在javascript,c#都有出现过就是不懂... 最好举一个例子,这个问题困扰了很久,现在javascript,c#都有出现过就是不懂 展开
 我来答
百度网友fc027fc
推荐于2017-09-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:849万
展开全部

返回值就是子程序或者函数执行结束后返回给主程序或者调用函数的函数的值。


比如

int max(int x,int y){
    if(x>y) return x;
    else return y;
}

返回x,y中较大的值。

如果在其他处调用,例如

int a = max(1,2);

max返回的值赋给了a,此时a=2。


/*************************************************************************************************

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据带回给调用函数,即递归调用,所以一般把函数名变量称为返回值。

函数可以有返回值,也可以没有返回值。对于没有返回值的函数,功能只是完成一个操作,应将返回值类型定义为void,函数体内可以没有return语句,当需要在程序指定位置退出时,可以在该处放置一个。

函数可以有返回值,只要 return 就可以给出一个。不过我们常常不用它--有两个原因:

1、C/C++里返回值是复制出去的,而对于大的对象,复制的代价很高;

2、有些对象是不能复制的--至少编译器不知道怎么复制--比如数组。

于是我们有了很多这样的函数:

bool GetObj(ObjType& obj);

bool Encode(const char* src, char* dest);

用一个参数来代替返回值,而返回值只是指示函数执行是否成功。我本人一直固执的认为,这是C的处理方式,C++不该这样,返回就是返回,就该光明正大的返回,而不是在文档里为某个参数悄悄的注上: // out

诚然返回一个大对象是困难的,但这个困难是 C 程序员的,而不是 C++ 程序员的 -- 我们可以返回指针。C也有指针,但很少有人敢在 C 函数里返回一个指针,因为:

1、如果指针指向栈变量,毫无疑问,要么你不用这个返回值,要么是一个错误;

2、如果指针指向堆变量,要么你在祈祷用这个函数的程序员会好好的看文档且足够细心会调用 free,要么就是内存泄漏

3、如果指针指向 static 变量,那么用这个函数的程序员牢牢记住“下次调用这个函数以后,上次的返回值也会跟着变”,要么就是你被别人骂成“专出 BUG 的垃圾”。

在C++里直接返回裸指针的话,情况并不会有什么起色,不过 C++ 有智能指针的,通常它们指向堆变量,占用的空间和裸指针一样大。

考虑前面第一个函数,我们写成:

std::auto_ptr<ObjType> GetObj();

那么一切迎刃而解,返回值如果你不要,作为临时变量,会立即被析构,返回的对象被释放;如果你要,就得赋值给另一个智能指针。总之不用程序员记得,编译器会保证这个对象的释放。

考虑第二个函数,稍微有一点麻烦,因为 auto_ptr 是不能用来持有数组的,不过,在C++的世界里,std::string 几乎总是比 char* 好用:

std::auto_ptr<std::string> Encode(const char* src);

http://baike.baidu.com/link?url=iJjx2rA2D-fojZ__McFD94mtsdWTc9pM0BlcxGUlbe0Ct3eOx-tdAmzd4UPTBNBS0EIhTGo6NHMXoQSDS4Z--a

********************************************************************************************************************/

追答
谢谢啦
随逄曲m
2015-01-07
知道答主
回答量:17
采纳率:0%
帮助的人:2.2万
展开全部
方法中需要有返回值的时候要有return,例如sum()方法要返回一个相加后的结果..此时需要return. 如果方法只是打印一句话之类的话 没有返回 就不需要return
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式