C++ 的数组

数组

数组:一组相同数据类型变量的集合;

数组包含了 一维数组 、 二维数组 和 多维数组;
有一个比较特殊的数组就是 字符串 数组;

字符串数组有一些比较重要我单独写一个博客【 链接 】;
和一个基于数组的小游戏推箱子【 链接 】;

一:一维数组

1 )一维数组定义代码:

类型 数组名[大小] 大小必须是常量或者常量表达式;

int Array[5];  // 数组的定义

2 )一维数组初始化以及注意事项

数组元素的静态初始化; {} ;
数组元素的动态赋值:循环+下标;

注意一:当全局元素都有初始值时,数组大小可以省略;

int n[] = { 1,2,3,4,5 }; // 当全局元素都有初始值时,数组大小可以省略

注意二:当部分元素初始化时,其他元素系统自动补0;

int m[5] = { 1,2 };//当部分元素初始化时,其他元素系统自动补0

3 )一维数组的内存

  1. 所有元素内存大小之和;
  2. 连续内存——由低到高;
int Array[5] = { 1,2,3,4,5 };
cout << "数组的大小:" << sizeof(Array) << endl;  // 20字节
cout << "&Array[0]的地址:" << &Array[0] << endl;
cout << "&Array[0]的地址:" << &Array[1] << endl;
cout << "&Array[0]的地址:" << &Array[2] << endl;
cout << "&Array[0]的地址:" << &Array[3] << endl;
cout << "&Array[0]的地址:" << &Array[4] << endl;

数组大小和地址

二:多维数组

多维数组(n维数组):看成多个n-1维数组组成(从左往右);
如果m为n维数组,m[i]就是n-1维数组;

这里我以 二维数组 为例;

  1. 定义:类型 数组名[维数1][维数2];维数>= 1 正整数( 常量或者常量表达式 );

当 全部元素 或 部分元素 初始化时, 维数1 可以省略;

//定义int型2行3列的二维数组:由2个大小为3的一维数组组成
int n[][3] = { 1,2,3,4,5,5 };//当全部元素或部分元素初始化时,维数1可以省略
int a[][4] = {
	{1,2},
	{3,4},
	{5,6,7}
};

其实就是有多少个一维数组放在一起,先按照先后顺序填满一个一个的一维数组,到最后不足以填满一个一维数组时,给这个一维数组补 0 ;

  1. 内存:

1.所有元素内存大小之和;
2.内存是连续的(按行存储);
3. 数组元素的访问: 数组名[下标1][下标2] 下标从0开始到维数-1

三:字符串 数组

字符串数组有一些比较重要我单独写一个博客【 链接 】;
和一个基于数组的小游戏推箱子【 链接 】;

四:数组补充知识 数组的取值问题

Array &Array[0] &Array 的结果都是一样的,但是它们的含义有所不同;

  1. Array:
    表示数组第一个元素的首地址(4个字节的首地址);
  2. &Array[0]:
    表示数组第一个元素的首地址(4个字节的首地址);
    3.&Array:
    整个一维数组的对应内存的首地址(20个字节首地址);
int Array[5] = { 1,2,3,4,5 };
cout << "Array     : " << Array << endl;
cout << "&Array[0] : " << &Array[0] << endl;
cout << "&Array    : " << &Array << endl;

数组的不同取值结果

特别要注意的是:

数组名 Array 永远等价于 &Array[0] ,sizeof 除外;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值