一维数组

数组

前言:用好数组的前提是熟练掌握循环!

1,举个例子

数组类似于超市门口的寄存柜,每个小柜子都有自己的编号,一个小柜子也只能存放一个人的东西。

数组的名称就像柜子的名称,它可以叫天兴罗斯福广场的柜子,也可以叫沃尔玛超市的柜子。

数组的类型就像柜子的用途,可能给顾客存放食物,可能给顾客存放日用品。

数组的元素就是顾客寄存在柜子里的东西。

因为柜子有编号,所以顾客能立刻就找到寄存的物品在哪里,数组起到的作用就和这个柜子一样。

2,数组的定义

数组包括三部分——类型 名称 大小 ,数组有了这三部分,才能真正起到存储元素的作用。

类型和变量一致,可以是int double 等类型,也就是任意有效的C语言数据类型。

在定义时数组的大小要用一对中括号括起来。

例如:

/*定义一个可以存储你双十一买的每一件物品的价格的数组
	假设你买了5件衣服*/
double cloth[5];

数组名称为cloth;因为要存储的是钱数,它的类型被定义为了有小数的double;而你一共买了5件衣服,所以你只需要开辟5个大小的数组就足够存储衣服的单价了 。

3,数组的下标

为了方便取出数组中的元素,在数组写入元素的时候每个元素的位置就固定了,每个位置都有一个编号(类比柜子的编号),这个编号也就是下标是从0开始的整数,并且逐一递增。

所有的数组都是以0作为他们第一个元素的索引,也被称为基索引

4,数组的初始化

数组的初始化有三种方式:

/*方法1*/
int array[5] = {1,2,3,4,5}; //{}内元素个数不能多于5
/*方法2*/
int array[] = {1,2,3,4};//此时数组有4个元素,相当于[4]
/*方法3*/
int array[5];
		array[0] = 1;  /*中间三个赋值过程略去不表*/
		array[4] = 5;	 /*第一次赋值为1,第五次赋值为5*/

方法一常用场景:

数组只需要定义一次,后续不做过多改变。

/*方法一举例*/
int leapYear[12]={31,29,31,30,31,30,31,31,30,31,30,31};

上述例子用leapYear这个数组存储闰年12个月每个月的天数。每个月的天数是固定不变的,以后使用的时候也不需要对数组重载,所以可以直接在定义的时候进行赋值。

方法二emmm……

方法二还是不要多用的好,我因为用方法二被学长骂过,故这里不举例。

方法三常用场景:

我觉得第三种方法使用的多。我说的使用并不是在定义时就直接赋值,而是在一些在定义的时候无法进行赋值的情况下,使用循环来写入数组。

/*方法三举例*/
int a = 12345, array[5];
for(int i = 0; i < 5; i++){
  	array[i]=a%10;
  	a/=10;
}

以上代码可以将整数a的每一位数都存入数组中,可以自己运行代码试一试。

5,访问数组元素

访问数组元素时可直接根据下标从数组中获得对应下标中存储的值。

继续使用方法三中的代码:

int num = array[3];
printf("%d", num);

上面代码运行后输出的应该是2,数组 array 中的第4个元素。

6,一维数组与多维数组

一位数组类似一条线段,上面的点仅有长度。

二维数组类似一个平面直角坐标系,其中的元素是(x,y)这样的点集。

多维数组就是类比推理,比如三维数组就是空间直角坐标系,有长度、深度、广度三个性质。

二维数组总体与一位数组相同,但二维数组的非定义时赋值需要双层for循环嵌套写入。

由于主要介绍一位数组,二维数组不再继续深入。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值