不在函数体内new,如何返回字符串

tx183584 2012-01-07 09:49:53
string能返回吗
...全文
181 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
楚天乐 2012-01-09
  • 打赏
  • 举报
回复
返回时没有问题的,因为返回的内容,会从被调用函数拷贝到调用函数的堆栈中。
比如

void c()
{
....................
int a = function(a,b)
....................
}

在调用function函数结束的时候,返回值会被拷贝到c函数堆栈中a位置

string类型也一样
卡卡_苏米 2012-01-09
  • 打赏
  • 举报
回复
干嘛要直接返回string类型的对象,返回指针和引用不是更好么?
Binzo 2012-01-09
  • 打赏
  • 举报
回复
//#5
#include <string>
不然就要重载“ << ”了。
lee_鹿游原 2012-01-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hongwenjun 的回复:]

C/C++ code

#include <iostream>
char* cfun(char* str)
{
char* ret = str;
/* 函数功能实现
str是个指针,会在操作中改变地址,
所以增加个ret指针返回地址用*/
return ret;
}

using namespace std;
string& s……
[/Quote]

++
hongwenjun 2012-01-08
  • 打赏
  • 举报
回复

#include <iostream>
char* cfun(char* str)
{
char* ret = str;
/* 函数功能实现
str是个指针,会在操作中改变地址,
所以增加个ret指针返回地址用*/
return ret;
}

using namespace std;
string& strfun(string& str)
{
/* 函数功能实现
str是引用的,不会改变地址
*/
return str;
}
int main()
{
char cstr[] = "Hello world!";
string str("Hello world!");

cout << cfun(cstr) << endl;
cout << strfun(str) << endl;
return 0;
}




C 和 C++ 函数的区别
tx183584 2012-01-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gongheguoyingpai11 的回复:]

C++中果断用string
[/Quote]
可以返回局部变量string吗.我试了,怎么不行
gongheguoyingpai11 2012-01-07
  • 打赏
  • 举报
回复
C++中果断用string
Kevin_Perkins 2012-01-07
  • 打赏
  • 举报
回复
字符串不一定非要用返回值,可以用传出参数。你在函数调用前new好再调用函数,传入字符数组指针。
用string,是依靠对象复制,实际也是用到了new.
Kimshuen 2012-01-07
  • 打赏
  • 举报
回复
可以的

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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