c++中这样的代码正确么?

dukcho 2004-04-30 03:33:12
你好,我将一个数组传递到函数中,在数组修改完后返回,这样写正确么?

void getData(int[] & data)
~~~~~~~这样写错在什么地方?编译的时候提示&后面缺少括号

我知道使用指针可以,我想试试使用引用,不知道引用&在对数组处理的时候是如何写的。
...全文
82 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
vsfan 2004-04-30
  • 打赏
  • 举报
回复
int[] & data错了
Jinhao 2004-04-30
  • 打赏
  • 举报
回复
template<int SIZE>
void getData(int (&data)[SIZE]){
for(int i=0;i<SIZE;i++)
{
//process data[i]
}
}
xuwedo2003 2004-04-30
  • 打赏
  • 举报
回复
再则我想楼主可能是学了一些JAVA吧,C++中你直接写“int []”是不对的。
rorot 2004-04-30
  • 打赏
  • 举报
回复
这样写
void getData(int data[]);
autoegg 2004-04-30
  • 打赏
  • 举报
回复
就是普渡众生的做法,把数组名作为指针传入函数,这也是最为合理的方法之一。
古布 2004-04-30
  • 打赏
  • 举报
回复
void getData(int(&data)[]); 这样引用一个数组。包括数组的大小
dev-cpp下通过。v6不行。
xuwedo2003 2004-04-30
  • 打赏
  • 举报
回复
同意xorong(普渡众生)
楼主没有必要把一个数组的引用当做参数,直接像 xorong(普渡众生) 所说那样做,效率一点也不会低,而且与你的出错的程序所达到的效果是一样的,而且易懂,而且…………没有而且了。
zhouqingyuan 2004-04-30
  • 打赏
  • 举报
回复
的确不会有这样做的,也没有任何必要,因为不会有也不能改动数组地址的。所以如果非要这样做加引用,最好在前面加上const。
否则等程序崩溃了,你才醒悟过来可不太好。
Inkick 2004-04-30
  • 打赏
  • 举报
回复
说实话,我真没试过数组可以传递引用
Inkick 2004-04-30
  • 打赏
  • 举报
回复
数组名本质是一个指针,你把数组名的引用传递给函数相当于传递了一个二级指针~
fansy007 2004-04-30
  • 打赏
  • 举报
回复
#include<iostream.h>



void getData(int* & data)
{
*data=5;
*++data=3;
}





void main()
{
int x[3]={0,1,2};
int* q;
q=x;

getData(q);




}
//可以传一个指针的引用,q指针移动了一格并被保留了下来
疯狂的魔法 2004-04-30
  • 打赏
  • 举报
回复
这样写:
int a[100];
void getData(int * data);

//调用
getData(a);
liguangwen 2004-04-30
  • 打赏
  • 举报
回复
数组只能用指针来传递,,不存在值传递,所以也不存在利用引用的问题。
qyet 2004-04-30
  • 打赏
  • 举报
回复
为什么不传一个指针呢?

65,186

社区成员

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

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