☰
一维及二维数组全解析:从创建到内存存储
2026/10/26 18:12:43 网站建设 项目流程

1.数组的概念

数组是一组相同类型元素的集合;

  • 数组中存放1个或者多个数据,但数组元素个数不能为0;
  • 数组存放多个数据,类型是相同的。

数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。

2.一维数组的创建和初始化

2.1数组的创建

一维数组创建的基本语法如下:

type arr_name[常量值];

存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的大小和数组的元素类型。

  • type指定的是数组中存放数据的类型,可以是:char,short,int,float等,也可以自定义的类型。
  • arr_name指的是数组的名字,这个名字根据实际情况,起的有意义就行。
  • [ ]中的常量值是用来指定数组的大小的,这个数组的大小是根据实际需求指定就行。
int math[25]; char ch[23]; double score[30];

2.2数组的初始化

数组在创建时,需要给给定一些初始值,这种就被成为初始化。

数组的初始化一般使用大括号,将数据放在大括号中,使用逗号隔开。

数组如果进行了初始化,数组的大小是可以省略的。

2.3数组的类型

int arr[10] = { 1,2,3,4 };
//int 是数组中的元素的类型
//数组arr的类型是int [10]

3.一维数组的使用

学习了一维数组的基本语法,一维数组可以存放数据,存放数据的目的是对数据的操作

3.1数组的下标

从语言规定数组是有下标的,下表是从0开始的,假设数组有n个元素,最后一个元素的下标是n-1,下标就相当于数组元素的编号,如下:

int arr[10]={1,2,3,4,5,6,7,8,9,10};

C语言中数组的访问提供了一个操作符[ ],这个操作符叫:下标引用操作符。

有了下标引用操作符,我们就可以轻松的访问到数组的元素,比如我们访问下标为7的元素,我们就可以使用arr[7],想要访问下标是3的元素,就可以使用arr[3]。

3.2数组元素的打印

3.3数组的输入


4.一维数组在内存中的存储

打印出来的地址是16进制的

说明:

  1. 数组的元素在内存中是连续存放的
  2. 随着数组下标的增长,地址是由小(低)到大(高)变化的

5.sizeof计算数组元素个数

sizeof 中C语言是一个关键字,是可以计算类型或者变量大小的,其实sizeof 也可以计算数组的大小。

6.二维数组的创建

6.1二维数组的概念

前面学习的数组被称为一维数组,数组的元素都是内置类型的,如果我们把一维数组做为数组的元素,这时候就是二维数组,二维数组作为数组的元素的数组被称为三维数组,二维数组以上的数组统称为多维数组

二维数组是存放一维数组的数组

6.2 二维数组的创建

语法如下:

type arr_name[常量1][常量2]; 例如: int arr[3][5]; double date[2][8];

解释:

  • 3表示数组有3行
  • 5表示每一行有5个元素
  • arr是数组的每个元素是整型类型
  • arr是数组名,可以根据自己的需要指定名

(date数组意思基本一致)

7.二维数组的初始化

像一维数组一样,也是使用大括号初始化的。

7.1不完全初始化

int arr1[3][5]={1,2}; int arr2[3][5]={0};

7.2 完全初始化

int arr3[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7};

7.3 按照行初始化

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

7.4初始化时省略行,但不能省略列

8.二维数组的使用

8.1二维数组的下标

二维数组访问也是使用下标的形式,二维数组是有行和列的,只要锁定了行和列就能唯一锁定数组中的一个元素。

C语言规定,二维数组的行是从0开始的,列也是从0开始的,如下所示:

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

8.2二维数组的输入和输出

9.二维数组在内存中的存储

二维数组内存中也是连续存储的

10.C99中的变长数组

在C99标准之前,c语言在创建数组的时候,数组大小的指定只能使用常量,常量表达式,或者如果我们初始化数据的话,可以省略数组的大小。

int arr1[10]; int arr2[3+5]; int arr3[]={1,2,3};

这样的语法限制,让我们创建数组就不灵活了,有时候数组大了浪费空间,有时候数组又小了不够用。

C99中给一个变长数组的新特性,允许我们可以使用变量指定数组的大小。

VS中msvs默认不支持变长数组的

我们可以使用gcc测试,也可以使用clang测试,devC++中使用的就是gcc

变长数组的根本特征,就是数组长度只有运行时才能确定,所以变长数组不能初始化。变长数组的大小是可以使用变量来指定的,在运行的时候,根据变量的大小来指定数组元素个数,而不是说数组的大小是可变的。数组的大小一旦确定就不能再变化了。

11.数组的练习

练习1.多个字符从两端移动,向中间汇聚

练习2.二分查找

题目:给定一个升序的整型数组,在这个数组中找到指定的值n,找到了就打印n的下标,找不到就打印“找不到”。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询