0
点赞
收藏
分享

微信扫一扫

周游C语言教程8 - 数组

A邱凌 2022-02-02 阅读 104

周游C语言教程8 - 数组

这是周游C语言的第八篇教程,你将在这篇文章里认识数组。

数组

数组就是一组相同的数的集合,数组的声明并不是声明一个个单独的变量,比如a0、a1、…、a99,而是声明一个数组变量,比如 a,然后使用 a[0]、a[1]、…、a[99] 来代表一个个单独的变量。

数组在内存中是连续的。

第一个元素第二个元素第三个元素最后一个元素
a[0]a[1]a[2]a[99]

声明数组

在声明数组时需要定义数据类型,数组名称和数组大小,数组大小需要用方括号包裹

数据类型 数组名称[数组大小];

比如有5框苹果,我们就可以声明成

int apple[5];

数组初始化

数组可以使用以下方式进行初始化

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

这样就将apple这个数组的每个成员都单独进行了赋值

apple[0]apple[1]apple[2]apple[3]apple[4]
12345

单独进行赋值的时候可以将数组长度省略,这样编译器将会自动把给数组计算长度

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

访问数组

数组名[索引号]的形式可以访问数组,索引号需要从0开始。比如apple[0]表示apple数组的第一个元素。
下列代码将计算苹果的总数,并将苹果平分给每个框

#include <stdio.h>

int main()
{
	int apple[5] = { 1,2,3,4,5 };
	int i = 0;
	int total = 0;
	for (i = 0; i < 5; i++)
	{
		total += apple[i];
	}
	printf("一共有%d个苹果\n", total);
	for (i = 0; i < 5; i++)
	{
		apple[i] = total / 5;
		printf("第%d个框现在有%d个苹果\n", i+1, apple[i]);
	}
}

多维数组

C语言支持多维数组,其声明形式如下

数据类型 数组名称[第一维长度size1][第二维长度size2][...][第n维长度sizen];

多维数组一共包含了size1size2…*sizen个变量。

int apple[3][5][4];

以上声明表示一个3.5.4维的数组

二维数组

我们以最简单的二维数组为例,定义一个

int apple[3][5];

我们给它赋予一个现实意义,一共有3间房子,每间房子都有5框苹果。

第一筐第二筐第三筐第四筐第五筐
第一间房子apple[0][0]apple[0][1]apple[0][2]apple[0][3]apple[0][4]
第二间房子apple[1][0]apple[1][1]apple[1][2]apple[1][3]apple[1][4]
第三间房子apple[2][0]apple[2][1]apple[2][2]apple[2][3]apple[2][4]

初始化二维数组

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

其中,花括号可以省略

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

访问二维数组

同样可以用数组名加索引号的方式进行访问。

int a = apple[1][3];

表示访问第2个房间第4筐(索引号从0开始)

#include <stdio.h>

int main()
{
	int apple[3][5] = {
	{1,2,3,4,5},
	{3,2,1,4,5},
	{2,5,3,4,1}
	};
	int i, j = 0;
	int total = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			total += apple[i][j];
		}
	}
	printf("一共有%d个苹果\n", total);
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			apple[i][j] = total / 5 / 3;
			printf("第%d个房间第%d个筐现在有%d个苹果\n", i+1, j+1, apple[i][j]);
		}
	}
}
举报

相关推荐

0 条评论