A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

自己写的swap为什么这样子换不了? swap(int a,int b),非得这样写 swap(int[]arr,int a,int b)?
视频的解释听不懂什么意思啊,数组里的元素换了,不就是换了吗?一定要把整个数组拿来换?

9 个回复

正序浏览
以参数形式传递简单类型的变量时,实际上是将参数的值作了一个拷贝传进方法函数的,那么在方法函数里再怎么改变其值,其结果都是只改变了拷贝的值,而不是源值。 数组数引用类型,将数组传进去后,在函数中对形参的修改会体现在实参上,类似于指针。
回复 使用道具 举报
数组是有自己的内存空间的,你传两个整数,我怎么知道你这两个整数是角标?是谁的角标?
所以,你得有角标,并且这个角标是哪个数组的角标才能操作,
回复 使用道具 举报
wrnlksblk 发表于 2015-7-15 19:59
那到底是什么东西换了位置呢??那两个数换了位置?那两个数的位置不就在数组里吗? ...

如果单独传两个数而没有传进去数组,当交换位置的时候,就相当于没有告诉数组这两个数位置交换了,数组不知道,那当然在数组里没有换位置了
回复 使用道具 举报
我很恐慌的发现我已经忘了:funk:
回复 使用道具 举报
你首先要知道你要换的数在哪个数组里啊,所以肯定要传数组进去。
回复 使用道具 举报
把地址换了锕
回复 使用道具 举报
那到底是什么东西换了位置呢??那两个数换了位置?那两个数的位置不就在数组里吗?
回复 使用道具 举报
zhwfa1991 发表于 2015-7-15 18:23
如果你把数组中两个数传过来,在里面交换了位置,但是数组里面这两个数并没有换位置,所以当你想交换数组里 ...

那到底是什么东西换了位置呢??那两个数换了位置?那两个数的位置不就在数组里吗?
回复 使用道具 举报
如果你把数组中两个数传过来,在里面交换了位置,但是数组里面这两个数并没有换位置,所以当你想交换数组里两个数的位置的时候,应该是在数组里进行交换
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马