C++中二维数组在内存中占用一片连续的内存空间。
定义方式(三种):
1、数据类型 数组名[行数][列数];
2、数据类型 数组名[行数][列数]{{数据1,数据2...},{数据3,数据4...},{数据5,数据6...}...};
3、数据类型 数组名[][列数]{数据1,数据2,数据3,数据4,数据5...};
三种命名方式。
ps:
1、二维数组的行数可以通过sizeof(arr)/sizeof(arr[0])获取。
2、二维数组的列数可以通过sizeof(arr[0]/sizeof(arr[0][0])获取。
2、数组中的每行的首地址为:
2.1第一行首地址:arr[0];
2.2第二行首地址:arr[1];
......
3、使用sizeof(数组名);可以获取数组所占内存的大小
4、指针操作二维数组的方式(伪代码):
int arr[10][10];
将数组arr存入数据;
int *p = arr;//设置存储int类型的指针p,值为arr数组的首地址
//而*p[0][0]=arr[0][0];
如果指针存放的地址为二维数组的首地址,则指针++为数组内存向后偏移一个此数组类型的字节数
例arr数组为int类型,int类型占4字节,则例arr数组的首地址为0x1010,则int *p = arr;
则p++的地址为0x1014,而0x1014的地址正好为arr[0][1]的地址
运行结果:
注:本文章仅为学习路线中感悟,有错误之处还请指出!