急急急!“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}
请问怎么来的?谢谢啦! 展开
int b[]={11,12,13,14,15,16};
b=a;
b[0]=123456;
结果输出时数组a为{123456,200,300}
数组b为{123456,200,300}
请问怎么来的?谢谢啦! 展开
3个回答
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};
你明白了没?
展开全部
这个就是一种赋值运算,首先数组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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
并不是长度问题。因为你是b=a 所以相当于把a付给了b 当b的值改动时,a也会改动。所以就这样洛。
追问
1.> a和b是两个数组啊,两个数组怎么可以相互赋值呢?在c语言中这样做可是错误的啊。
2.>b改变,为什么a也要改变?
追答
这是在JAVA 明白 因为int你不是new的,你这样定义的话是存在缓存里面的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询