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日

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器