二维数组
二维数组就是在一维数组上,多加一个维度
1.1.1 二维数组定义的四种方式:
1、数据类型 数组名[行数][列数];
2、数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
3、数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4};
4、数据类型 数组名[ ][列数] = {数据1,数据2,数据3,数据4};
|建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性
1.1.2 二维数组数组名
查看二维数组所占内存空间
获取二维数组首地址
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { /* * 1、数据类型 数组名[行数][列数]; 2、数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}}; 3、数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4}; 4、数据类型 数组名[ ][列数] = {数据1,数据2,数据3,数据4}; */ int arr[][3] = { 1,2,3,4,5,6}; for (int i = 0; i < 2; i ) { for (int j = 0; j < 3; j ) { cout << arr[i][j] << " "; } cout << endl; } cout << "arr所占的内存:" << sizeof(arr) << endl; // 24 cout << "arr第一行所占的内存大小:" << sizeof(arr[0]) << endl; // 12 cout << "arr 的行数:" << sizeof(arr) / sizeof(arr[0]) << endl; //2 cout << "arr 的列数:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl; //3 cout << "每个元素所占的内存:" << sizeof(arr[0][0]) << endl; // 4 /* arr 的内存的首地址和它的第一行的首地址 和 它的 第一行第一列 的首地址 相同, arr 的 第二行的首地址 和 它的 第二行 第一列 的 首地址 相同; 可以看到 第一行的首地址 和 第二行的首地址 差为 12,即 代表中间 有 3 个元素 */ cout << "arr在内存中的地址值:" << (int) & arr << endl; // arr在内存中的地址值:-359598792 cout << "arr 第一行在内存中的首地址:" << (int)&arr[0] << endl; //arr 第一行在内存中的首地址:-359598792 cout << "arr第一行第一列在内存中的首地址:" << (int)&arr[0][0] << endl; //arr第一行第一列在内存中的首地址:-359598792 cout << "arr 第二行在内存中的首地址:" << (int)&arr[1] << endl; //arr 第二行在内存中的首地址:-359598780 cout << "arr第二行第一列在内存中的首地址:" << (int)&arr[1][0] << endl; //arr 第二行第一列在内存中的首地址:-359598780 /* 第二行第二列的元素 和 第二行第一列 的 元素 差4个字节 */ cout << "第二行第二个元素的地址值:" << (int) & arr[1][1] << endl; //第二行第二个元素的地址值:-359598776 return 0; }