学习C语言之数组

目录

一.数组的概念

二.⼀维数组的创建和初始化

1.数组创建

2.数组的初始化

三.一维数组的使用

1.数组元素的打印

2.数组的输入

四.sizeof计算数组元素个数

五.⼆维数组的创建

1.⼆维数组的概念

2.⼆维数组的创建

六.⼆维数组的初始化

七.⼆维数组的使⽤

1.⼆维数组的下标

2.⼆维数组的输⼊和输出


一.数组的概念

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

数组中存放的是1个或者多个数据,但是数组元素个数不能为0。

数组中存放的多个数据,类型是相同的。数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。

二.⼀维数组的创建和初始化

1.数组创建

type arr_name[常量值];

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

type 指定的是数组中存放数据的类型,可以是:char、short、int、float等,也可以⾃定义的类型。

arr_name指的是数组名的名字,这个名字根据实际情况,起的有意义就⾏。

[]中的常量值是⽤来指定数组的⼤⼩的,这个数组的⼤⼩是根据实际的需求指定就⾏。

⽐如:我们现在想存储某个班级的20⼈的数学成绩,那我们就可以创建⼀个数组,如下:

int math[20];

2.数组的初始化

数组在创建的时候,我们可以给定⼀些初始值,这就称为初始化。

数组的初始化要根据数组的大小来确定,可以小于或等于数组大小,但不能大于

//完全初始化 
int arr[5] = {1,2,3,4,5};
//不完全初始化 
int arr2[6] = {1};//第⼀个元素初始化为1,剩余的元素默认初始化为0 
//错误的初始化 - 初始化项太多 
int arr3[3] = {1, 2, 3, 4};

三.一维数组的使用

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

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

数组中的值与下标的对应关系如下:

数组中的值12345
对应的下标01234

在C语⾔中数组的访问提供了⼀个操作符[],这个操作符叫:下标引⽤操作符。有了下标引用操作符,我们就可以轻松的访问到数组的元素了,⽐如我们访问下标为3的元素,我们就可以使⽤ arr[3],想要访问下标是0的元素,就可以使⽤arr[0],如下代码:

#include <stdio.h>
int main()
{
 int arr[10] = {1,2,3,4,5}; 
 printf("%d\n", arr[3]);//4
 printf("%d\n", arr[0]);//1
 return 0;
}

1.数组元素的打印

想要打印整个数组内容时,只要我们产⽣数组所有元素的下标就可以了,可以使⽤for循环产⽣0~9的下标,接下来使⽤下标访问就⾏了。代码如下:

#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("%d ", arr[i]);
 }
 return 0;
}

2.数组的输入

我们也可以使用for循环和scanf函数去将元素输入数组中,如下:

#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++)
 {
  scanf("%d", &arr[i]);
 }
 return 0;
}

四.sizeof计算数组元素个数

在前文中,我们讲过sizeof可以计算字符串的大小,除此之外,sizeof还可以计算数组的大小。例如:

#include <stido.h>
int main()
{
 int arr[10] = {0};
 printf("%d\n", sizeof(arr));
 return 0;
}

这⾥输出的结果是40,计算的是数组所占内存空间的总⼤⼩,单位是字节

数组中所有元素的类型都是相同的,只要计算出⼀个元素所占字节的个数,数组的元素个数就能算出来。所以我们选择第⼀个元素算⼤⼩就可以。

#include <stido.h>
int main()
{
 int arr[10] = {0};
 printf("%d\n", sizeof(arr[0]));//计算⼀个元素的⼤⼩,单位是字节 
 return 0;
}

接下来就能计算出数组的元素个数:

#include <stido.h>
int main()
{
 int arr[10] = {0};
 int sz = sizeof(arr)/sizeof(arr[0]);
 printf("%d\n", sz);
 return 0;
}

这⾥的结果是:10,表⽰数组有10个元素。

五.⼆维数组的创建

1.⼆维数组的概念

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

2.⼆维数组的创建

二维数组的定义如下:

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

上述代码中的type和arr_name与一维数组的创建一样,分别是数组类型和自定义数组名称。

常量值1代表了该二维数组有多少行;

常数值2代表了该二维数组有多少列;

下面将在初始化中以表格的形式帮助大家理解。

六.⼆维数组的初始化

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

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

上述表格中,第一行和第一列分别为数组的下标

二维数组在初始化时,若没有限制哪个元素填入哪行,会将大括号内的元素,按照每一行最大存储个数依次填入,一行填满列的数量大小的元素之后,再填下一行元素

二维数组在初始化不完全,即只填写了几个元素的情况下,会将其他元素初始化为0。

若想在前一行元素没输满的情况下将元素输入下一行,可以再次以大括号来将元素分行

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

初始化时省略⾏,但是不能省略列,因为知道列的大小,可以将已有元素按每一行有几个元素进行排列,当一行的列数满时,跳转到下一行,当元素存储完毕时,用了多少行,列数就是多少。而知道行不知道列,就不知道每一行能放多少个了。

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

七.⼆维数组的使⽤

1.⼆维数组的下标

⼆维数组访问也是使⽤下标的形式的,⼆维数组是有⾏和列的,只要锁定了⾏和列就能唯⼀锁定数组中的⼀个元素。 C语⾔规定,⼆维数组的⾏是从0开始的,列也是从0开始的,如二维数组的初始化中的表格。

#include <stdio.h>
int main()
{
 int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
 printf("%d\n", arr[2][4]);
return 0;
}

上述代码打印结果为7

2.⼆维数组的输⼊和输出

类似于一维数组的输入和输出,我们也可以使用循环语句来对二维数组进行元素的输入和输出

#include <stdio.h>
int main()
{
 int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
 int i = 0;//遍历⾏ 
 for(i=0; i<3; i++) //产⽣⾏号 
  {
   int j = 0;
   for(j=0; j<5; j++) //产⽣列号 
   {
    scanf("%d", &arr[i][j]); //输⼊数据 
   }
  }
  for(i=0; i<3; i++) //产⽣⾏号 
  {
   int j = 0;
   for(j=0; j<5; j++) //产⽣列号 
   {
    printf("%d ", arr[i][j]); //输出数据 
   }
   printf("\n");
  }
 return 0;
}

有关C语言数组的介绍就到这里,感谢大家观看,如有纰漏或错误,欢迎大家提出与指正。也欢迎大家来评论区提问与讨论,共同进步,谢谢大家。

  • 32
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值