C语言入门 Day_12 一维数组

目录

前言

1.创建一维数组

2.使用一维数组

3.易错点

4.思维导图


前言

存储一个数据的时候我们可以使用变量, 比如这里我们定义一个记录语文考试分数的变量**chinese_score**,并给它赋值一个浮点数(float)。

cs 复制代码
float chinese_scoer=98.0;
printf("语文考试分数是%f\n",chinese_scoer);

假如我们需要记录多个类似的数据,比如这里记录语文数学英语物理化学生物这6科考试的分数,我们就需要6个变量,这样的话就有点麻烦。

假设我们要记录100个数据呢?全用变量的话一来变量名很多,二来代码也会很冗长,这时候我们就需要一些新的机制。

cs 复制代码
float chinese_score = 98.0;
float math_score = 96.0;
float english_score = 90.0;
float physics_score = 88.0; 
float chemistry_score = 87.0;
float  organism_score = 81.0;

这里我们就要介绍一个新的存储方式------数组,

它可以一次性存储多个相同类型的数据。

如果变量就像一个盒子的话,一次可以存储一个数据;

那么数组就像一个抽屉,可以存储多个数据。

1.创建一维数组

1.1

我们创建一个有六个元素的浮点型数组用来存储成绩:

cs 复制代码
float exam_score[6]={98.0,96.0,90.0,88.0,87.0,81.0};

1. 数组的数据类型,float浮点型

2. 数组名,exam_score

3. 数组的长度是6,也就是能容纳6个数据

4. 方括号,里面写的是数组的长度

cs 复制代码
float exam_score[6]={98.0,96.0,90.0,88.0,87.0,81.0};

5.赋值符号 =

6.数组的六个元素,都是浮点型

7.数组的元素,需要用花括号括起来

8.数组中的元素用逗号,隔开

1.2

上面我们完成了数组的初始化工作,创建了一个浮点数的数组,它里面存储了六个值。我们把这些值叫做数组的元素。

数组的命名规则和变量是一致的,由大小写字母,数字和下划线组成,不能由数字开头。

同时,我们不仅能创建浮点数的数组,之前学过的所有数据类型的数组都可以创建,只不过需要注意的是,完成创建以后,所有数组的元素都是这个类型的。

例如:

cs 复制代码
int student_age[3]={18,19,21};

1.我们创建一个有三个元素的整型数组student_age,并进行赋值:

2.然后输入数组名字student_age:

3.填入数组的长度[3],注意使用英文的方括号[]:

cs 复制代码
int student_age[3]={18,19,21};

4.填入赋值符号= :

5.填入数组元素的花括号{}:

6.填入分隔数组元素的逗号, :

1.3

完成了数组的创建/定义之后,我们就可以使用里面的数据元素了,这里的使用包括了读取和修改。

创建一维数组就像是做好了一个抽屉,并在抽屉中放好了东西(数据);

使用一维数组就是在这个抽屉中取出东西(数据),或者在抽屉的每个格子里面放入不同的东西(数据)。

2.使用一维数组

2.1

数组中的元素存储是有序的,

有序的意思就是数组元素是按照顺序一个一个排好的。

他们都有固定的位置,方便查找和修改。

下列代码就会输出1,2,3,因为我们依次打印了这个数组的第一个元素,第二个元素,第三个元素:

cs 复制代码
int int_list[3]={1,2,3};
printf("%d\n",int_list[0]);
printf("%d\n",int_list[1]);
printf("%d\n",int_list[2]);

1.创建了一个有三个元素的整型数组

2.打印数组里面的第一个元素 printf("%d\n", int_list[0])

3 数组里面的第一个元素 int_list[0]

cs 复制代码
int int_list[3]={1,2,3};
printf("%d\n",int_list[0]);
printf("%d\n",int_list[1]);
printf("%d\n",int_list[2]);

4.数组元素的位置,也是用方括号+数字表示 [0]

5.打印数组里面的第二个元素 printf("%d\n", int_list[1]);

6.打印数组里面的第三个元素 printf("%d\n", int_list[2]);

2.2

这种有序的数据结构又叫做线性表,也就是说每个元素都像一根线一样一一排列的。我们可以通过索引/下标的方式来访问数组中的元素。

2.3

我们来看看数组里面的下标,也就是方括号里面的数字

cs 复制代码
int int_list[3]=[1,2,3];
printf("%d\n",int_list[0]);
printf("%d\n",int_list[1]);
printf("%d\n",int_list[2]);
  1. 方括号里面是3,表明这个数组的长度是3

  2. 打印第一个元素,下标是0

  3. 打印第二个元素,下标是1

  4. 打印第三个元素,下标是2

2.4

我们可以注意到,在使用数组的时候,我们下标是从0开始的,比如第一个元素是int_list[0]

这是由一个C语言内在的机制决定的,因为第一个元素是在线性表的头部,所以它的位置和线性表的开头位置是重合的;

因此我们增加0的位置就能访问这个元素了,因为第一个元素就在开头。

而访问第二个元素的时候,我们需要越过第一个元素,这时候需要+1,因此第二个元素的下标是1。

2.5

比较有意思的是,从C语言开始,后面所有的编程语言在类似数组这样线性表的结构里面,都使用0来表示第一个元素。

所以久而久之这也成了程序员的一个梗,第一个数不是1,是0

例如:

cs 复制代码
char char_list[5]={'p','a','p','e','r'};
printf("%c\n",char_list[0]);
printf("%c\n",char_list[1]);
printf("%c\n",char_list[2]);
printf("%c\n",char_list[3]);
printf("%c\n",char_list[4});

输出结果

cs 复制代码
papper

1.我们定义一个字符数组并赋值,然后打印输出它,填入第一个下标0:

2.填入第二个下标和方括号[1],需要注意的是,由于没有换行符/n,所以这五个字符字母是在同一排输出的:

2.6

除了访问数组的元素以外,我们还可以修改数组的元素,因为数组的元素也和变量一样,可以重新赋值和修改。

创建一个数组并初始化赋值1,0,2,4,然后修改这个数组的元素,赋值1,1,1,1:

cs 复制代码
int int_list[4]={1,0,2,4};
int int_list[1]={1};
int int_list[2]={1};
int int_list[3]={1};

1.定义一个整型数组,赋值1,0,2,4

2.给第二个数组元素赋值1,因为第一个数组元素就是1,无需修改

3.给第三个数组元素赋值1

4.给第四个数组元素赋值1

2.7

既然是个线性结构,我们就不能超出这个这个线性表的长度,比如一个数组长度是'3',我们可使用的范围就是0到2

超出这个范围就属于"越界",程序会报错。

3.易错点

如图

方括号[]中常量表达式表示数组元素的个数;

数组元素的索引是从0开始的;

数组大小必须是大于0的正整数。

4.思维导图

在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。

相关推荐
一点媛艺2 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风2 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生3 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功3 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
闲晨3 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程3 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk4 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*4 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue4 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man4 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang