数组的特点:
特点1:数组中的每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的
数组的定义:
一维数组定义方式有三种:
第一种: 数据类型 数组名[数组长度];
这种是定义完之后,然后我们自己进行自定义赋值,a[0],a[1],a[2]
第二种: 数据类型 数组名[数组长度]={1,2,3,4,5};
这里需要注意的是,如果后面填充的数量小于定义的数组的数组长度, 那么自动填充为0
第三种:数据类型 数组名[] = {1,2,3,4};
一维数组名的用途:
1、可以通过数组名统计整个数组占用的内存大小和数量
int整形一个数组占四个字节,所以结果如下:
2、可以获取数组在内存中的首地址
这里可以发现地址本身是为16进制的,但是我们可以进行转换为int,发现int之间为4个字节之差,同样也可以发现的是arr 相当于 &arr[0],&arr[0]代表的是第一个元素的地址,&就是取这个元素的内存地址,那么就是元素的首地址就相当于arr,同样也是&arr[0]
二维数组的定义:定义方式有四种
第一种:数据类型 数组名[ 行数 ][ 列数 ]; 这种自己知道
第二种:数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
这种方式,可读性高,能直接看出是两行。
第三种:数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
这种方式,可读性不高,还不如第二种方法。
第四种:数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};
这种方式,隐式说明了三列一行
二维数组名的用途:
1、查看二维数组所占内存空间
24个字节,因为一个int为四个字节,然后数组所占的个数为6个
那么如果想要获得数组的个数呢?
cout << sizeof(arr)/ sizeof(int)<< endl;
那么如果想要获得数组的每行的个数呢?
cout << sizeof(arr[0])/ sizeof(int)<< endl;
那么如果想要获得数组有多少行,多少列呢?
cout << "这个数组行数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "这个数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0])<< endl;
2、获取二维数组首地址
总结1:二维数组名就是这个数组的首地址
总结2:对二维数组名进行sizeof时,可以获取整个二维数组占用的内存空间大小