急急急!“java中”数组a赋给数组b是什么意思?是不是错啦?

接着上面:如:inta[]={100,200,300};intb[]={11,12,13,14,15,16};b=a;b[0]=123456;结果输出时数组a为{1234... 接着上面:如:int a[]={100,200,300};
int b[]={11,12,13,14,15,16};
b=a;
b[0]=123456;
结果输出时数组a为{123456,200,300}
数组b为{123456,200,300}
请问怎么来的?谢谢啦!
展开
 我来答
匿名用户
2011-09-27
展开全部
a和b同样是int型的数组,而且b比a长度要长,所以可以赋值的,就是让b指向a,b=a之后,b就是a的一个引用,b就指向了a所在的内存,b[0]=123456,是把b的第一个元素给改了,a自然也改了啊!所以结果就是{123456,200,300}了!
更多追问追答
追问
1.> 两个数组怎么可以相互赋值呢?在c语言中这样做可是错误的啊。
2.>b=a怎么是引用呢?
追答
a其实只是数组{100,200,300};的一个引用,而b=a就是将b也指向了数组:{100,200,300};
这样a和b都指向了数组:{100,200,300};
你明白了没?
骑着蜗牛追女女
2011-09-27
知道答主
回答量:13
采纳率:0%
帮助的人:6.3万
展开全部
这个就是一种赋值运算,首先数组a,b都为int型,而且有各自的初值a,初值就是100,200,300;b,初值就是11,12,13,14,15,16;然后b=a就是说,将a的值赋给了b,等于将b数组的值变了,现在b的值就和a是一样的都是100,200,300,数组取值是根据数组下标,下标从0开始,所以b[0]第一个数,现在给b[0]重新赋值123456所以输出就是123456,200,300
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甜而星oQ
2011-09-27 · 超过15用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:47.1万
展开全部
并不是长度问题。因为你是b=a 所以相当于把a付给了b 当b的值改动时,a也会改动。所以就这样洛。
追问
1.> a和b是两个数组啊,两个数组怎么可以相互赋值呢?在c语言中这样做可是错误的啊。
2.>b改变,为什么a也要改变?
追答
这是在JAVA 明白 因为int你不是new的,你这样定义的话是存在缓存里面的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式