二维数组

来源:互联网 发布:java窗口编程 编辑:程序博客网 时间:2024/04/28 00:33

二维数组
定义格式:int [][] arr=new int[3][4];

int [] x,y[];

上面这种定义方式中x是一维数组,y是二维数组

相当于int [] x;

int [] y [];
该数组包括3个一维数组,每个一维数组包括四个元素,其中aarr[0] arr[1]相当于一个一维数组,既该数组包括了三个一维数组,
在二维数组中,例如int [][] arr=new int[3][4],该数组中包含了三个以为数组,运行下面的程序

package execisetest;
public class MutiArray {
        public static void main(String [] args){
                int [][]arr=new int[3][4];
                System.out.println(arr[0]);
                System.out.println(arr[1]);
                System.out.println(arr[2]);
                System.out.println(arr);
        }       
}
运行结果为
[I@18c56d
[I@497934
[I@1b48197
[[I@1a80a69


返回的是三个一维数组的地址和一个二维数组的首地址

在内存中的存储结构如下图

 

疑问
其中arr这个是存放在栈中的,但是arr[0]  arr[1]  arr[2] 的输出也是地址,那么这些地址存放在哪?是定义二维数组时就在栈中保存了arr  arr[0]  arr[1]  arr[2] 这四个变量内容还是只保存了arr,如果只保存了arr那么arr[0]  arr[1]  arr[2] 的值又是怎么得到的?

原创粉丝点击