黑马程序员技术交流社区

标题: swap(int[] arr,int a ,int b)与swap(int[a], int[b]) [打印本页]

作者: Ci功    时间: 2015-9-28 10:04
标题: swap(int[] arr,int a ,int b)与swap(int[a], int[b])
swap(int[] arr,int a ,int b)与swap(int[a], int)



前面的函数可以实现将两个数组中的元素换位置,
后面的这个函数为什么不能实现这样的功能。
懂的同学,回答下,感激不紧。

作者: 水果牛牛    时间: 2015-9-28 10:04
引用型变量它有具体的对象类型,并且它指向的是一个内存地址。而非引用型变量我理解就是那些基本数据类型了,没有对象类型,并且指向的是基本数据。arr就是是一个引用型变量,它是一个数组对象的引用,指向的是这个数组对象的内存地址。a和b就属于基本数据类型,指向的就是整数。int[a]和int[b]的结果就是一个整数,这是一个基本数据类型。
你是不是以为传入int[a]、int[b]就相当于把数组和角标传入到方法里面去了。没有,你这样传入的只是两个元素值而已,int[a]代表的是一个整数。和数组以及角标没关系。我们要看它的结果是什么。
作者: Ci功    时间: 2015-9-28 10:13
sorry,改正下,swap(int[] arr,int a ,int b)与swap(int[a], int[b])
作者: 水果牛牛    时间: 2015-9-28 10:21
swap是你自定义的方法吧,前面那个swap传入了数组和要交换的元素的角标,这就明确了要对哪个数组中的哪两个元素进行操作,而后面的swap方法值传入了两个元素值,并没有明确好数组和角标。也就是说后面的swap(int[a],int[b])与swap(int x,int y)其实是一样的。
作者: Ci功    时间: 2015-9-28 10:36
水果牛牛 发表于 2015-9-28 10:21
swap是你自定义的方法吧,前面那个swap传入了数组和要交换的元素的角标,这就明确了要对哪个数组中的哪两个 ...

能不能通过内存分析来解释一下呢?
作者: 水果牛牛    时间: 2015-9-28 10:38
Ci功 发表于 2015-9-28 10:36
能不能通过内存分析来解释一下呢?

这个需要用到内存分析吗?
作者: Ci功    时间: 2015-9-28 10:41
水果牛牛 发表于 2015-9-28 10:38
这个需要用到内存分析吗?

或者说是变量的作用范围,引用型变量和非引用型变量。能从这个角度能解释一下吗?有劳了
作者: Ci功    时间: 2015-9-28 11:12
水果牛牛 发表于 2015-9-28 11:05
引用型变量它有具体的对象类型,并且它指向的是一个内存地址。而非引用型变量我理解就是那些基本数据类型了 ...

哦,懂了,完美回答。
作者: 水果牛牛    时间: 2015-9-28 13:16
Ci功 发表于 2015-9-28 11:12
哦,懂了,完美回答。

多谢,就差一个技术分了。
作者: 雨来    时间: 2015-10-13 15:37
首先 你要有一个数组  在有两个参数    就一个  你要给谁交换位置呢




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