关于C++和JAVA中函数参数传值的问题

函数声明voidxxxx(char&A[],char&B[],int&num,char&a[],int&n)函数调用xxxx(A,B,num,a,n);错误<Unknow... 函数声明 void xxxx(char &A[],char &B[],int &num,char &a[],int &n)
函数调用 xxxx(A,B,num,a,n);
错误 <Unknown>' : arrays of references are illegal
--------------------------------------------------------------------------------------------
上面函数参数里的A[ ],B[ ], num,我调用完函数后还要 使用,
所以加了&,但是事实表明我对此 完全没理解,所以请教高手,
求解决这个C++难题,
急求,急急急!!
--------------------------------------------------------------------------------------------
如果从java角度再说一下就更好了,,谢谢!!!
展开
 我来答
kslinabc
2014-04-21 · TA获得超过261个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:190万
展开全部
c++中传给数组的引用应该是类似这样用char (&A) [100]. 传递引用就是函数内的改变直接作用在所传参数上.如果给A赋值,A就真的变了;
注意[]操作符优先级比&高,所以要char (&A) [100],而非char &A [100];
另外因为是引用所有会检查数组实参和形参的大小是否一致,这里中括号内提供大小是应该的,如果不想这样做,尽量用指针吧
Java里的就是char[] A即可,因为是非基本类型,所以传递的实际上是指针的值,两个指针指向同一堆内的数组,改变的数组元素会反映出来,但是如果A直接在里面被赋值是没效果的,因为被赋值改变的是指针的副本.这就是Java中所谓的引用与c++中真正的引用的区别
百度网友787c460
2014-04-20 · TA获得超过2692个赞
知道小有建树答主
回答量:377
采纳率:50%
帮助的人:310万
展开全部
A[]是无意义的标示符,声明的时候直接用char &(随便什么标示符) 例如 char &a 就行
调用的时候你所用的A也是无意义的,应该用A中的某一个元素(如A[i] (int i))作为实参

我说的是C++的情况,Java的不会~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式