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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static int[] reverse(int[] arr) {
        for (int i = 0;i < arr.length / 2 ;i++ ) {
                                        int temp = arr[i];
                                        arr[i] = arr[arr.length - 1 - i];
                                        arr[arr.length - 1 - i] = temp;
                }
                return arr;
        }

6 个回复

倒序浏览
顶一下。。。。。。。。。。。。
回复 使用道具 举报
数组是存在堆内存中的,在创建数组的的时候堆内存内的数组地址会赋值给栈内存中的数组名,如果说你把数组中的元素进行反转后返回arr这是没有意义的因为数组的地址值没有变知识数组的元素顺序变了,你返回的arr只是一个地址值而已比如像   [I@b377a  这样的值
回复 使用道具 举报
不需要返回arr的,直接用void类型就可以了,因为你在函数中操作数组时是根据地址操作的,那么存在于堆内存中的数组成员值已经变化了,所以你不需要返回数组名称数组中的值就已经改变了。
回复 使用道具 举报
这样语法是没有错的
回复 使用道具 举报
没有错,数组是引用数据类型在堆内存里面,改变以后不会随着方法的弹栈返回原来的数据
回复 使用道具 举报
robintian 发表于 2016-7-4 15:47
不需要返回arr的,直接用void类型就可以了,因为你在函数中操作数组时是根据地址操作的,那么存在于堆内存 ...

非常感谢,明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马