二维数组

二维数组
定义格式: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] 的值又是怎么得到的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值