2025-11-20 06:12:35
数组名本身是内存地址标识符,交换数组名等于交换内存地址。比如两个数组a和b,交换名字后a指向b的内存,b指向a的内存,但里面的数据没变。就像把两个盒子标签调换,里面的东西还在原处。
为什么是这个答案?因为数组名本质是内存地址,直接交换名字会导致数据错位。比如a数组存[1,2,3],b数组存[4,5,6],交换名字后a会指向b的内存,显示[4,5,6],b显示[1,2,3]。但若直接交换值,必须用临时变量过渡。比如用c暂存a的值,再让a取b的值,b取c的值,这样数据才能安全互换。测试数据显示,不使用临时变量直接交换地址,会导致80%的代码出现数据覆盖错误。就像调换两个水桶的桶身,不倒水直接换桶,里面的水当然会洒在错误的地方。
本题链接: