t3020 2023-01-08 17:22 采纳率: 100%
浏览 17
已结题

关于#java#的问题:赋值的意思不应该只是将数组b中的对应值放到数组c中吗,之后再对数组c进行操作的时候应该只有c的值会变,而数组b的值不会变才对,请问为什么数组b里的值最后却跟着变了呢

#关于java编程#
int[ ] c=b; 赋值的意思不应该只是将数组b中的对应值放到数组c中吗,之后再对数组c进行操作的时候应该只有c的值会变,而数组b的值不会变才对,请问为什么数组b里的值最后却跟着变了呢?

在图片中,应该是数组c变成{4,2,3},但是数组b还是{1,2,3}才对呀?

img

img

  • 写回答

2条回答 默认 最新

  • 五目炒饭 2023-01-09 15:47
    关注

    因为这里创建数组是简写格式,创建时里面要new,也就是开辟新的堆内存空间指向栈内存地址,所以前面的b,c都是地址值,而不是内存空间,所以将b赋值给c后,是将地址值赋予,指向的内存空间还是一样的,所以改变c,内存空间变了,b也会改变

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

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月8日

悬赏问题

  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
  • ¥188 需要修改一个工具,懂得汇编的人来。