Java语言基础6:二维数组、内存结构、参数传递、实参和形参
1、二维数组
(1)二维数组:元素是一维数组的数组。定义二维数组时,二维数组的行数必须要给定,列数可以不给定。
(2)定义格式1:数据类型[ ][ ] 数组名=new 数据类型[m][n];
二维数组的行数和列数均给定。
m行n列。m:表示这个二维数组有m个一维数组。n:表示每个一维数组的元素有n个。
注意:以下格式也可以表示二维数组:(一维数组和二维数组的数组名是引用类型,默认值是null)
A:数据类型 数组名[ ][ ]=new 数据类型[m][n];
B:数据类型[ ] 数组名[ ]=new 数据类型[m][n];
举例:
int[][] arr=new int[3][2];
//输出二维数组名称
System.out.println(arr); //地址值
//输出二维数组的第一个元素即一维数组的名称
System.out.println(arr[0]); //地址值
System.out.println(arr[1]);
System.out.println(arr[2]);
//输出二维数组的元素
System.out.println(arr[0][0]); //元素值
System.out.println(arr[0][1]);
System.out.println(arr[1][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2][0]);
System.out.println(arr[2][1]);
内存结构图:
(3)定义格式2:数据类型[ ][ ] 数组名=new 数据类型[m][ ];
二维数组的行数给定,列数不给定,动态给出。
m行 动态 列。m:表示这个二维数组有m个一维数组。列数没有给出:表示二维数组的列数可以动态给出。
举例:( 二维数组名配合一个编号是一维数组名,二维数组配合两个编号是二维数组元素。)
int[][] arr=new int[3][];
arr[0]=new int[2];
arr[1]=new int[3];
arr[2]=new int[1];
(4)定义格式3:数据类型[ ][ ] 数组名=new 数据类型[ ][ ]{{元素1,元素2...}, {元素1,元素2...} ,{元素1,元素2...}};
二维数组的行列均不给出。
简化版本格式:数据类型[ ][ ] 数组名={{元素1,元素2...}, {元素1,元素2....}, {元素1,元素2....}};
举例:
int[][] arr={{1,2,3},{4,5,6},{7,8,9}};
int[][] arr={{1,2,3},{4,5},{6}};
2、Java中参数的传递问题:
(1)基本类型:形式参数的改变对实际参数没有任何影响。(传过去的是数值)
(2)引用类型:形式参数的改变直接影响实际参数。(传过去的是地址值)