黑马程序员技术交流社区

标题: 问一个小问题关于数组元素置换的 [打印本页]

作者: wrnlksblk    时间: 2015-7-15 16:45
标题: 问一个小问题关于数组元素置换的
自己写的swap为什么这样子换不了? swap(int a,int b),非得这样写 swap(int[]arr,int a,int b)?
视频的解释听不懂什么意思啊,数组里的元素换了,不就是换了吗?一定要把整个数组拿来换?
作者: zhwfa1991    时间: 2015-7-15 18:23
如果你把数组中两个数传过来,在里面交换了位置,但是数组里面这两个数并没有换位置,所以当你想交换数组里两个数的位置的时候,应该是在数组里进行交换
作者: wrnlksblk    时间: 2015-7-15 19:59
zhwfa1991 发表于 2015-7-15 18:23
如果你把数组中两个数传过来,在里面交换了位置,但是数组里面这两个数并没有换位置,所以当你想交换数组里 ...

那到底是什么东西换了位置呢??那两个数换了位置?那两个数的位置不就在数组里吗?
作者: wrnlksblk    时间: 2015-7-15 22:49
那到底是什么东西换了位置呢??那两个数换了位置?那两个数的位置不就在数组里吗?
作者: 何鹏程    时间: 2015-7-15 22:52
把地址换了锕
作者: 老中医    时间: 2015-7-15 22:53
你首先要知道你要换的数在哪个数组里啊,所以肯定要传数组进去。
作者: 是么了11    时间: 2015-7-15 22:58
我很恐慌的发现我已经忘了:funk:
作者: zhwfa1991    时间: 2015-7-16 09:39
wrnlksblk 发表于 2015-7-15 19:59
那到底是什么东西换了位置呢??那两个数换了位置?那两个数的位置不就在数组里吗? ...

如果单独传两个数而没有传进去数组,当交换位置的时候,就相当于没有告诉数组这两个数位置交换了,数组不知道,那当然在数组里没有换位置了
作者: 李文思    时间: 2015-7-16 10:30
数组是有自己的内存空间的,你传两个整数,我怎么知道你这两个整数是角标?是谁的角标?
所以,你得有角标,并且这个角标是哪个数组的角标才能操作,
作者: 陈鹏No1    时间: 2015-7-16 10:46
以参数形式传递简单类型的变量时,实际上是将参数的值作了一个拷贝传进方法函数的,那么在方法函数里再怎么改变其值,其结果都是只改变了拷贝的值,而不是源值。 数组数引用类型,将数组传进去后,在函数中对形参的修改会体现在实参上,类似于指针。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2