C语言数组介绍

一、数组的概念

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

从以上概念中我们可以得到两个信息:

1、数组中存放一个或者多个数据,并且数组元素的个数不能为0;2、数组中存放的多个元素,类型是相同的。

同时数组又分为一维数组和多维数组,多维数组多为二维数组。

二、数组的创建和初始化

2.1、数组创建

type arr_name   [常量值]

分别表示:数组类型、数组名字、数组大小

例如我们要创建一个全班数学成绩的数组:

int math [20];

但是以上数组内部是没有元素的,需要对数组进行初始化。

2.2、数组的初始化和数组类型

(1)、完全初始化

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

 也就是数组中每个元素都赋值,都确定一个值,也就是完全初始化

(2)、不完全初始化

int arr2 [6] = {1,2}

也就是不全部都给赋值,这样后面默认就为0;

(3)、数组的类型

这里需要注意的是,并不是数组内部元素是什么类型,数组就是什么类型。数组的类型是一种自定义类型,去掉数组名就是数组的类型。例如上文中数组的类型分别为:int [5]和 int [6],把arr1 arr2这两个名字去掉,剩下的就是数组类型。

三、一维数组的使用

3.1、数组下标

数组内部元素是有下标的,下标从0开始。例如数组里面有n个元素,最后一个数组的元素的下标就是n-1。下标就相当于数组的编号。如下:

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

下标:                      0,1,2,3,4,5,6,7,8,9

 数组访问有个操作符--[ ],这个操作符为下标引用操作符。也就是在int后面的 [ ] 的定义数组内部元素个数,如果在printf后面就是数组访问符

 

3.2、数组元素的打印 

如果想要访问整个数组,可以用  for  循环产生0到9十个下标,通过十个下标访问数组内部的元素。

如图,通过for循环访问数组内部的元素,并打印

3.3、数组的输入

数组的打印就相当输出,数组既然有不完全初始化,那么就可以通过后续的输入让数组完成后续初始化。

如上图所示,通过scanf函数向数组中输入数据,然后通过printf打印出来,虽然数组原来有元素,但是可以通过scanf函数人为改变。 

四、计算数组中的元素个数

这里我们需要明确一件事情:数组中的每个元素都要占据内存,每个元素占据内存的和就是整个数组占据的总内存,数组内部每个元素所占的内存都是相同的。

这也是我们计算元素个数的基本运算方式。

五、二维数组

5.1、二维数组的概念

 如果把一维数组作为数组元素,组成新的数组,这就是二维数组。同样的,二维数组作为数组元素组成三维数组。

 5.2、二维数组的创建

定义二维数组的语法如下:

type arr_name [常量值1] [常量值2];

例如:int arr [3] [5];

3表示数组有三行,5表示每行有五个元素,int是数组每个元素是整形类型,arr是数组名。

5.3、二维数组的初始化

 不完全初始化:

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

int arr2 [3] [5] = { 0 };

 

完全初始化:

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

 

 初始化时可以省略行但是不能省略列

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

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

 

如图所示,二维数组也是从0开始的,然后行和列各自计算位置 

5.4、二维数组的使用

如同一维数组利用下标,二维数组也要利用下标进行定位和使用。二维数组只要锁定了行和列就可以定位到具体的数组元素。

如图,数组一共有三列五行,arr[2] [4]意为第二行第四列。 

同时二维数组也可以像一维数组那样,写入数据和读取数据

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值