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

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

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

我知道使用指针可以,我想试试使用引用,不知道引用&在对数组处理的时候是如何写的。
...全文
53 14 点赞 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
为什么不传一个指针呢?
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2004-04-30 03:33
社区公告
暂无公告