1.1数组的相关概念
数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个标识符命名,并通过编号(索引,亦称为下标或角标)的方式对这些数据进行统一管理。
-
-
-
-
-
- 数组名:本质上是一个标识符常量,命名需要符合标识符规范。(数组名表示[0]的地址)
- 元素:同一个数组中的元素必须是相同的数据类型。(定义的时候不能用不同的数据类型进行相等,需要进行强制转换,例:(int)|(float))
- 下标(索引、角标):从0开始的连续数字。(我们可以直接通过索引(下标)获取指定位置的元素,速度很快)
- 数组的长度:表示元素的个数。(数组一旦初始化完成,其长度就是确定的,数组的长度一旦确定,就不能修改。
-
-
-
-
1.2 数组的定义
- 方式一:先指定元素的个数和类型,再进行初始化(我原称为最麻烦的一种)
// 定义数组,数组名字是 arr1,元素类型是 int,元素个数是 3 个
int arr1[3];
// 定义完成后再给元素赋值
arr1[0] = 100;
arr1[1] = 200;
arr1[2] = 300;
- 方式二:指定元素的类型和个数并同时进行初始化
// 定义完数组直接进行初始化
int arr2[3] = {4,5,6};
- 方式三:指定元素的类型,不指定元素个数,同时进行初始化
// 没有指定元素个数,系统会自动计算
int arr3[] = {7,8,9,10};
1.3 访问数组元素
-
-
-
-
-
- 通过“数组名[下标]”可以访问数组中的元素,
-
-
-
-
// 定义 4 个元素的数组
int nums[4] = {10, 20, 30, 40};
// 修改第二个元素的值
nums[1] += 100;
现在nums[1]元素值:120
-
-
-
-
-
- 数组下标必须在指定范围内使用,超出范围视为越界。
-
-
-
-
越界得到的是不确定结果
1.4 计算数组长度
数组长度(元素个数)是在数组定义时明确指定且固定的,我们不能在运行时直接获取数组长度,但是,我们可以通过sizeof 运算符间接计算出数组长度,计算步骤如下:
-
-
-
-
-
- 使用sizeof运算符计算出整个数组的字节长度。
- 由于数组成员是同一类型,每个元素字节长度相等,用整个数组的字节长度除以单个元素的字节长度就可以得到数组的长度。
-
-
-
-
// 定义数组 没有指定长度
int nums[] = {10, 20, 30, 40, 50, 60, 70};
// 计算数组总的字节长度
int arrByteLen = sizeof nums;
// 用总字节长度除以单个元素的字节长度
int arrLen = arrByteLen / sizeof nums[0];
或者可以用缩写
sizeof nums / sizeof nums[0];