【C++学习笔记】数组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

数组是一组数据的集合,可以为整形数组、浮点型数组、字符数组、指针数组等等。在C\C++中,数组名为数组的地址,且是数组首元素的地址。


数组原理

1.代码演示

代码如下(示例):

#include <iostream>

using namespace std;



int main()
{
	cout << "---------------------------------第一部分----------------------------------" << endl;
	int que[3][4] = {1,2,3,5,
					 8,13,21,44,
					 65,109,274,383};

	cout << "二维数组地址:"<<que << endl;         
	cout << "第1行数组地址:" << que[0] << endl;       
	cout << "第1行数组的第1个元素地址:" << &que[0][0] << endl;  

	cout << "第2行数组地址:" << que[1] << endl;
	cout << "第3行数组地址:" << que[2] << endl;
	cout << "第1行数组的第4个元素值:" << que[0][3] << endl;


	cout << "---------------------------------第二部分----------------------------------" << endl;
	int* p_que[3] = { 0 }; //初始化指针数组
	for (int i = 0; i < 3; i++)  p_que[i] = que[i]; //将每一行数组地址储存到指针数组中
	cout << "解出第一元素地址的值:" << *p_que[0] << endl; //对应que[0][0]


	cout << "---------------------------------第三部分----------------------------------" << endl;
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			int* eme = p_que[i] + j;
			cout <<"i,j:"<< i <<","<<j<< endl;
			cout << eme << endl;
			cout << *eme << endl;
		}
	}
	return 0;
}

2.代码讲解

控制台输出结果:
在这里插入图片描述
观察发现:
1、二维数组地址=首行数组地址=首行数组的首个元素地址。
2、 相邻数组间的地址相差10(16进制),转化为10进制为16,即相邻元素地址相差4,为一个int所占内存大小。
在这里插入图片描述
观察发现,j每次都增加1,但eme每次都增加4,这是因为数组+1会指向数组下一个元素的地址,而不是仅仅为变量+1。


总结

1、数组名为首元素地址。
2、二维数组地址=首行数组地址=首行数组的首个元素地址。
3、数组名+1=下一个元素地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值