暮行 2022-03-18 10:48 采纳率: 100%
浏览 38
已结题

数组赋值的一个小问题

如果我想调用一个赋值方法给数组a赋值,怎么才能实现数组b赋值给数组a后,数组a指向数组b的地址而不是像图中这样仍然指向数组a本身的地址呢

img

  • 写回答

4条回答 默认 最新

  • 骑着长颈鹿敲代码 2022-03-18 11:51
    关注
    public static void main(String[] args) {
            int []a = {1,2,3,4};
            int []b = {4,5,6,7};
            System.out.println("先查看数组a和b的内存地址:"+ a +" "+b);
            //你之前的方法,数组是不能直接a=b这种方式赋值的,可以用swap2方法那样赋值,
            // 但是先改变内存地址是不行的,因为在int的时候就开辟了内存地址
            swap(a,b);//值和地址都没变
            System.out.println("查看swap方法后数组a和b的内存地址:"+a+" "+b);
            for(int i=0;i<a.length;i++){
                System.out.print(a[i]+"   ");
            }
            System.out.println();
            swap2(a,b);//值变了但地址没变
            System.out.println("查看swap2方法后数组a和b的内存地址:"+a+" "+b);
            for(int i=0;i<a.length;i++){
                System.out.print(a[i]+"   ");
            }
            System.out.println();
            System.out.println("想要赋值并改变内存地址必须在int的时候直接赋值");
            int [] c =a;
            System.out.println("int [] c =a:"+c);
            for(int i=0;i<c.length;i++){
                System.out.print(c[i]+"   ");
            }
            System.out.println();
            int [] d =b;
            System.out.println("int [] d =a:"+d);
            for(int i=0;i<d.length;i++){
                System.out.print(d[i]+"   ");
            }
        }
        public static void swap(int[] a, int[] b){
            a = b;
        }
        public static void swap2(int[] a, int[] b){
            for(int i=0;i<a.length;i++){
                a[i]=b[i];
            }
        }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月18日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭