学习资料及工具:bilibili视频网站黑马程序员匠心之作,BV1et411b73Z,共大概300+集https://www.bilibili.com/video/BV1et411b73Z?p=2
工具:Visual 2015
虽然不是0基础,但是之前感觉之前学过的和没学过一样,所以用0基础视频进行学习,此系列帖子作为笔记使用(主要是字丑)。
目录
正文
5.3 二维数组
在一维数组的基础上多加了一维
5.3.1 二维数组的定义方式(四种)
- 数据类型 数组名 [行数][列数];
- 数据类型 数组名 [行数][列数] = {{数据1,数据2},{数据3,数据4}};
- 数据类型 数组名 [行数][列数] = {数据1,数据2,数据3,数据4};
- 数据类型 数组名 [][列数] = {数据1,数据2,数据3,数据4};
建议:使用第二种定义方式
#include<iostream>
using namespace std;
int main()
{
//二维数组的四种定义方式
//1 数据类型 数组名 [行数][列数];
//int arr[2][3];//不赋值的情况下,会随机生成6个数
//for (int i = 0; i < 2; i++)//打印行
//{
// for (int j = 0; j < 3; j++)//打印列
// {
// cout << arr[i][j];
// }
// cout << endl;
//}
//2 数据类型 数组名 [行数][列数]={{数据1,数据2},{数据3,数据4}};
/*int arr[2][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;
//}
//3.数据类型 数组名 [行数][列数] = {数据1,数据2,数据3,数据4};
//int arr[2][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;
//}
//数据类型 数组名 [][列数] = {数据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;
}
system("pause");
return 0;
}
第一种结果(随机赋值):
第二种结果:
第三种结果:
第四种结果:
5.3.2 二维数组的数组名
- 查看二维数组的内存空间
- 查看二维数组的首地址
#include<iostream>
using namespace std;
int main()
{
//数据类型 数组名 [行数][列数]={{数据1,数据2},{数据3,数据4}};
int arr[2][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 << "二维数组所占的内存空间 :" << sizeof(arr) << endl;
cout << "二维数组第一个元素所占的内存空间 :" << sizeof(arr[0][0]) << endl;
//用整个内存空间除以每一个元素的内存空间
cout << "二维数组元素个数 :" << sizeof(arr) / sizeof(arr[0][0]) << endl;
//用整个内存空间除以每一行的内存空间
cout << "二维数组的行数为 :" << sizeof(arr) / sizeof(arr[0]) << endl;
//用每一行的内存空间除以每一个元素的内存空间
cout << "二维数组的列数为 :" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
cout << "二维数组的首地址 :" <<(int) arr << endl;//用int把16进制转化成10进制
cout << "二维数组的第一行元素的地址 :" << (int)arr[0] << endl;
cout << "二维数组的第二行元素的地址 :" << (int)arr[1] << endl;
//对元素单独取地址用&
cout << "二维数组的第一个元素的地址 :" << (int)&arr[0][0] << endl;
cout << "二维数组的第二行第一个元素的地址 :" << (int)&arr[1][0] << endl;
system("pause");
return 0;
}
结果如下: