欢迎来到白刘的领域 Miracle_86.-优快云博客
系列专栏 C语言知识
先赞后看,已成习惯
创作不易,多多支持!

目录
一、数组的含义
数组是一组相同类型元素的集合。
数组是一种数据结构,可以存储多个相同类型的元素。数组中的元素称为数组的元素,它们在内存中是连续存储的,并可以通过索引访问。索引是指向数组元素的位置,通常从0开始计数。
数组可以用来表示一组数据,例如一组学生的成绩、一组员工的工资等。通过使用数组,可以方便地对这组数据进行操作,如访问特定位置的元素、插入或删除元素、排序等。
数组的大小是固定的,一旦声明后,就不能改变。如果需要存储更多的元素,就需要重新声明一个更大的数组,并将原有数组中的元素拷贝到新数组中。
数组可以是一维的,也可以是多维的。一维数组类似于列表或向量,多维数组则类似于表格或矩阵。多维数组可以通过多个索引来定位元素的位置。
在计算机科学中,数组是一种基本的数据结构,被广泛应用于算法和程序设计中。通过数组,可以高效地存储和访问数据,提高程序的性能和效率。
今天我们先来学习一维数组。
二、一维数组
1.一维数组的创建及初始化
我们知道创建一个变量需要初始化,而创建一个数组也需要初始化,如何创建数组呢?
type arr_name[常量]
我们看到上面这一条,包括了type—数组的类型,arr_name—数组名,以及中括号和里面的常数值。之所以说数组是一个百宝箱,是因为它可以存储数据,比如说我想存放一个班30个人的数学成绩,那我可以这样:
int math[30]
那又如何创建数组呢?我们可以像这样:
int arr[5] = {0};
一般使用大括号将元素存入数组。
2.数组的类型
这个有朋友会问了,按照上面这个图来说 type arr_name[ ]的type不就是类型吗。其实不是这样的,数组的类型属于一种自定义类型,比如int math[50],它的类型就不是int,而是int [50];
3.一维数组的使用
上面我们学到了数组的建立以及初始化,那具体怎么使用,怎么存储的呢?
int arr[10]={1,2,3,4,5,6,7,8,9,10};

这里引入了数组下标,下标是从0开始的,最后一个元素的下标是n-1,下标就相当于元素的编号。而我们的中括号叫下标引用操作符,有了它我们可以快速找到我们所存的数据。
5.数组的打印
由于数组存储了多个数据,所以仅靠一个printf是不可以打印全部的,所以我们用到了循环。
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,0};
for (int i = 0; i < 10; i++)
{
printf("%d ",arr[i]);
}
return 0;
}
输出的结果:

学会了输出,输入也是同理。
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,0};
for (int i = 0; i < 10; i++)
{
scanf("%d",&arr[i]);
}
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}

6.数组在内存中的存储
刚讲完输入输出,我们就可以用数字了,但是想真正了解数组,就要看清它的本质,接下来,我们看看数组内存的存储,这里我们依次打印每个元素的地址:
#include <stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
for(i=0; i<10; i++)
{
printf("&arr[%d] = %p\n ", i, &arr[i]);
}
return 0;
}
输出结果如下:

我们可以清晰地观察到地址的前面几乎都一样只有后几位有差异,并且似乎能找到某种规律。再仔细想想,我们就可以看出,数组随着下标数的增长,地址从小到大变化,因此我们得出结论,数组在内存中的存储是连续存放的,并且我们发现每个地址之间相差4,这是因为类型为int,是四个字节,如果换成char,就会相差1。

三、sizeof
在C语言中,我们可以使用sizeof来计算数组元素个数
sizeof是一个关键字,它可以计算类型或变量的大小,所以它也可以用来计算数组的大小,例如:
#include<stdio.h>
int main()
{
int arr[10] = { 0 };
printf("%d", sizeof(arr));
return 0;
}
就可以计算出数组大小,为40(字节)。由于数组中的每个元素都是相同的,所以我们算出一个元素所占的字节,就能算出一共有多少元素。
计算一个元素:
#include <stdio.h>
int main()
{
int arr[10] = {0};
printf("%d\n", sizeof(arr[0]));//计算⼀个元素的⼤⼩,单位是字节
return 0;
}
计算数组元素个数:
#include <stdio.h>
int main()
{
int arr[10] = {0};
int sz = sizeof(arr)/sizeof(arr[0]);
printf("%d\n", sz);
return 0;
}
计算结果为:10,表示数组有10个元素。
因此在以后,需要写数组个数的时候,就不用固定写死了,要学会变通。

被折叠的 条评论
为什么被折叠?



