
有两个定义好的并且动态初始化的数组a和数组b,然后a=b 再遍历数组a为什
有两个定义好的并且动态初始化的数组a和数组b,然后a=b再遍历数组a为什么遍历出来就成了b的数组长度和其中的元素。java中...
有两个定义好的并且动态初始化的数组a和数组b,然后a=b 再遍历数组a为什么遍历出来就成了b的数组长度和其中的元素。
java中 展开
java中 展开
追问
a b是局部变量,由栈内存指向堆内存的地址 a=b就是把b的内存地址赋值给了a。大神能不能用语言给我描述清楚啊,萌新不是很懂
追答
不是局部变量,在java里面都是索引和对象的关系,很少说是指针,不过你可以这么理解。对,你说的没错。
蛮清楚了啊。。。
按照内存理解的话从c的角度理解更好。
假如有int[] a = {1,2,3}; int[] b = {4,5,6};
a本身并没有保存任何跟1,2,3有关的信息,a只是一个指针,保存的是{1,2,3}这个数组的其实位置,所以可以用*a访问到数组的起始位置,即1。b也一样。
当a = b 时,将b的信息赋给了a,此时a保留的{1,2,3}的数组地址信息被覆盖了,变成了b的信息,而b是保存的第二个数组的信息,所以此时再访问*a 时,就变成了4。
2017-09-25
展开全部
有两种方法可以实现。为方便说明,定义两个整型数组a,b,并实现将a中的值赋值到b中。inta[4]={1,2,3,4},b[4];1、通过数组遍历,逐个赋值。定义循环变量inti;for(i=0;i<4;i++)b[i]=a[i];该程序功能为遍历数组a,逐个赋值到
追问
不太懂,想从内存这方面理解这个
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询