Skip to content

2.4.2 一维数组

2.4.2 一维数组

数组的创建

数据类型 数组名[大小];

举个例子

int arr[10];

创建一个名称为arr,可以存储10个int类型数据的数组

如果我们不写大小且初始化,那么数组的大小会自动生成 初始化我们在后面说

数组的赋值

如果我们想赋值我们创建的数组 和变量类似,我们既可以在定义时赋值,也可以事后赋值

定义时赋值

示例:

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

这样,我们就创建了一个内容为1,2,3,4,5的数组

注意 如果我们在创建时赋值,但没赋完,那么未赋值的部分自动赋值为0 例如

int arr[5] = {1};

这就是创建了一个第一个元素为1,剩下的四个元素为0的数组

如果我们想创建一个全是0的数组,那么就是把大括号里的1改成0就可以了

事后赋值

和变量是相似的 我们只需要一个符号α来代指数组的某个元素 之后我们只需要

α = 1;

就能将数组中的这个元素赋值为1 那么现在问题只剩下了这个α应该是什么 别急,我下面就讲

数组元素的引用

数组中的每个元素都可以通过其对应的索引来调用

索引是从0开始排的 也就是说,第一个元素的索引也就是0,也就是arr[0]

所以,arr[i] (i为对应索引) 就可以指代第i-1个元素

实例1:创建一个存储数据为从1到10的数组

int arr[10];

for (int i = 0;i < 10;i++)
{
    arr[i] = i + 1; //赋值
}

实例2:遍历(把数组中所有数组都过一遍)我们刚才创建的数组

for (int i = 0;i < 10;i++)
{
    printf("%d\n", arr[i]);
}

数组长度的求解

我们之前提过一嘴 sizeof可以用来求一个数据的占用内存大小 那么我们可不可以用sizeof求数组的长度呢?

答案是显然的

以一个int类型的数组举例 我们的数组长度len就是 len = sizeof(arr)/sizeof(int)

为什么是这样呢? 因为sizeof(arr)相当于求出整个数组占用的内存(字节数)

而sizeof(int)相当于求出单个数据占用的字节数

那么,我们相除就可以得到这个数组存放了多少元素,也就是数组的长度