函数返回 数组的引用 可以吗?如何实现?

wpalhm 2007-12-13 10:19:27
函数如何去返回一个数组的引用?

&预算符总比[]底.请问我该如何去实现?
...全文
182 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wpalhm 2007-12-13
  • 打赏
  • 举报
回复
都谢谢了.现在明白了,好了
我给分了
yutaooo 2007-12-13
  • 打赏
  • 举报
回复
我知道是错的。我先写下了这个。因为这个直接体现返回引用。

错误的原因是返回了局部对象的引用。一会改改看,也许能改点好玩的出来。


#include <stdio.h>

int (&get_array(void))[4] {
int array[4] = {0, 1, 2, 3};
return array;
}

int main() {
printf("0:%d\n", get_array()[0]);
printf("1:%d\n", get_array()[1]);
printf("2:%d\n", get_array()[2]);
printf("3:%d\n", get_array()[3]);

return (0);
}
wpalhm 2007-12-13
  • 打赏
  • 举报
回复
谢谢.
believefym 2007-12-13
  • 打赏
  • 举报
回复
看到过一句话:
成也指针,败也指针
wpalhm 2007-12-13
  • 打赏
  • 举报
回复
c++中的数组,指针,引用
把我搞得好晕.
数组是指针!引用还是指针!

到底指针是好还是坏?用好了是够灵活够简单,可是用不好就是灾难!
lynnboy 2007-12-13
  • 打赏
  • 举报
回复
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
typedef int (&aref)[10];
aref getaref1(){return arr;}
int (&getaref2())[10]{return arr;}
taodm 2007-12-13
  • 打赏
  • 举报
回复
返回“引用”也是用返回“指针”实现的。
wpalhm 2007-12-13
  • 打赏
  • 举报
回复
ls说的是不是这样:

int* text_array( int(&array)[10])
{
return array;
}

但是这里返回的指针会发生一个拷贝.我不想要这个拷贝.直接返回引用.可以不?
JoseIsMe 2007-12-13
  • 打赏
  • 举报
回复
既然是数组,直接指针多好
believefym 2007-12-13
  • 打赏
  • 举报
回复
为啥不返回指针,用完记得delete掉就行了
wpalhm 2007-12-13
  • 打赏
  • 举报
回复
顶一下吧.谢谢了!

65,210

社区成员

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

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