3-4选择题
来源:3-7 选择题
左小珍
2018-01-29 21:49:14
这个题目自己用电脑试了运行结果 b a 都是[4,44]
选择题答案是b为[4]和a为[4,44],但是都不太明白为什么不是输出b为[4,44]和输出a为[4]
希望得到大家的解答,谢谢
4回答
离离钟
2018-10-27
在十二行运行之前,a和b指向的是同一个空间,
在第十二行运行完的时候,a被重新赋值,指向了一个新的地址,在堆内存中开辟了一个新的空间,但b还是原来那个老的空间,所以执行完第十二行的时候,a=[4, 44],b=[4],这已经是两个不同的空间了,接着第十四行,又把a=b,就是把a又指向了b的空间,这是两者又相同,都是[4],再下一行,为b添加了一个值44,这时a和b指向同一个空间,所以这时的a和b是相同的,都是[4, 44]。
一路电光带火花
2018-04-10
因为a是重新赋值呀,重新赋值的话,不会影响b的指向。可以测试下。
好帮手慕糖
2018-01-30
你好,因为a是重新赋值,赋值不会影响b的地址指向。然后a=b,这一步,又让二者的指向相同(把b的指向赋值给a);但是push向b里面添加数据,会影响地址。
祝学习愉快~
好帮手慕糖
2018-01-30
你好,首先a=[4],是引用类型的数据,然后,a的值赋值给b,b也指向4。
变量a重新赋值,并不会影响b的指向,所以输出的b还是[4]。
b的值赋给a,又将a的指向改变,指向了4(此时,a和b的指向是一样的)。通过push向b里面添加了44,所以a指向的也是[4,44]。
祝学习愉快~
相似问题