C++基础入门-05数组

5.1 概述

数组:就是一个集合,里面存放了相同类型的数据元素。
特点:
1、数组中的每个数据元素都是相同类型;
2、数组中每个数据元素的位置在内存中是连续的。

5.2 一维数组

在这里插入图片描述

5.2.1 一维数组的定义方式

1、一维数组定义一共有三种方式
(1)、数据类型 数据名[ 数组长度 ];
例如:

int arr[4];

(2)、数据类型 数据名[ 数组长度 ]={ 值1,值2,… };(推荐这种)
例如:

int arr[4]={1,2,3,4};

(3)、数据类型 数据名[ ]={ 值1,值2,… };
例如:

int arr[]={1,2,3,4};

2、注意:例如数组:arr[ 4 ],如果{ }内不足4个元素,则剩余的数据用0来补全

3、一般输出数组元素习惯于用循环语句
例如:

for (int i=0;i<4;i++)
{
	cout<<a[i]<<endl;
}

4、总结:
(1)数组名的命名规范与变量名命名规范一致,不要和变量重名;
(2)数组中的下标是从0开始索引的。

5.2.2 一维数组的数组名用途

1、可以查看整个数组占用内存空间的大小
在事先定义好数组 arr[ 4 ]后:

cout<<"整个数组所占用内存空间的大小:"<<sizeof(arr)<<endl;
cout<<"每个数组元素占用内存空间的大小:"<<sizeof(arr[0])<<endl;
cout<<"数组元素的个数:"<<sizeof(arr)/sizeof(arr[0])<<endl;

2、可以获取数组在内存当中的首地址

cout<<"数组首地址为:"<<(int)arr<<endl;
//加入(int)是为了将输出的地址转变为10进制输出
cout<<"数组中第一个元素的地址为:"<<(int)&arr[0]<<endl;
//注意加入了&符号
cout<<"数组中第二个元素的地址为:"<<(int)&arr[1]<<endl;

注意:
(1)一个int型是占用4个字节;一个double型是占用8个字节;
(2)数组名是常量(数组的首地址),不可以赋值,即:arr=100,是错误的赋值。

总结:
(1)直接打印数组名,可以查看数组所占用内存的首地址;
(2)对数组名进行sizeof,可以获取整个数组占用内存的空间大小。

5.3 二维数组

在这里插入图片描述
二维数组就是在一维数组上,多加了一个维度。

5.3.1 二维数组的定义方式

1、二维数组有四种定义方式:
(1)数据类型 数组名[ 行数 ][ 列数 ];
例如:

int arr[2][3];

(2)数据类型 数组名[ 行数 ][ 列数 ]={{数据1,数据2},{数据3,数据4}};
(推荐这种方式)
例如:

int arr[2][3]=
{
	{1,2,3},
	{4,5,6}
};

(3)数据类型 数组名[ 行数 ][ 列数 ]={数据1,数据2,数据3,数据4};
例如:

int arr[2][3]={1,2,3,4,5,6};

(4)数据类型 数组名[ ][ 列数 ]={数据1,数据2,数据3,数据4};
例如:

int arr[][3]={1,2,3,4,5,6};

2、总结
在定义二维数组时,如果初始化了数据,可以省略行数,但不能省略列数

3、一般输出二维数组元素习惯于用嵌套循环语句
例如对于二维数组: arr[ 2 ][ 3 ]

for (int i=0;i<2;i++)
{
	for (int j=0;j<3;j++)
	{
		cout<<arr[i][j]<<endl;
	}
}

5.3.2 二维数组的数组名用途

1、可以查看二维数组所占内存空间的大小

cout<<"整个二维数组占用内存空间的大小为:"<<sizeof(arr)<<endl;
cout<<"二维数组一整行占用内存空间的大小为:"<<sizeof(arr[0])<<endl;
cout<<"二维数组一个元素占用内存空间的大小为:"<<sizeof(arr[0][0])<<endl;

2、可以查看数组在内存中的地址

cout<<"二维数组首地址为:"<<(int)arr<<endl;
cout<<"二维数组第一行首地址为:"<<(int)arr[0]<<endl;
cout<<"二维数组第二行首地址为:"<<(int)arr[1]<<endl;
cout<<"二维数组第一个元素地址为:"<<(int)&arr[0][0]<<endl;
cout<<"二维数组第二个元素地址为:"<<(int)&arr[0][1]<<endl;

总结:
(1)二维数组名就是这个数组的首地址
(2)对二维数组进行sizeof操作时,可以获取整个二维数组占用内存空间大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值