浅浅讲一下数组

数组的概念

数组是同一种元素的集合,那么创造数组也就是创建一个空间储存同一种元素(数据)。

数组可以存放一个或者多个元素,但是元素个数不能为0。数组有一维数组、二维数组、三维数组等多维数组。多维数组最常见的是二维数组

数组创建的基本语法

type arr_name[m];

type是数组的类型,可以是:short、double、int、char...等,也可以是自定义数组类型 

arr_name为数组的名字(即数组名),数组名是自定义的,自己可以取个有意义的名字

m是常量值,用来指定数组的大小,看实际情况来取数值

数组的初始化

举个例子:

int arr[10] = {0,1,2,3,4,5,6,7,8,9};

这样我们创建了了一个整型数组,我们把里面的10个元素分别初始化为0,1,2,3,4,5,6,7,8,9 。数组的下标是从0开始的,看图:

我们是要用{}来初始化的,如果我们不完全初始化,例如:

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

那么剩下的元素全部默认为0,打印出来的结果也是0

用for循环就可以打印了

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main()
{
	
	int arr[10] = { 0,1,2,3,4 };
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	
	return 0;
}

一维数组在内存中的存储

一维数组是连续存放的,通俗简单来讲就是:同一个数组中每个元素都是邻居,他们的房子都是连在一起的。那么当我们要访问数组的时候,就要通过地址来找到相应的数组。

%p是用来打印地址的,我们可以看到每一个元素的地址都相差4,也就是相差4个字节,每个元素都申请了4个字节的空间

二维数组的创建和存储

type arr_name[m][n];

m,n都是常量值,数组名、数组类型定义和一维数组一样

m规定了这个数组的行数,n规定了数组的列数,都是从0开始标记,看个图就明白了

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

和一维数组一样,如果不完全初始化,其余的元素都默认为0。那么就有小伙伴好奇,如果是这样的话,岂不是要填满第一行,才能去填第二行的元素,不不不

二维数组的初始化一般是这样的,是有{}来规定位置的,看图

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

那么他们的地址会是怎样的呢,看图:

没错,它们之间的地址也是连续的,每个元素相差4个字节,行与行之间也是相差4个字节,那么也就是说,二维数组其实可以看成这个样子

补充:

在C99之前,数组的大小(即arr[m]中的m)是不允许使用变量的,只能是常量,但是C99之后,引用了变长量,就可以使用变量了。有些编译器还是默认不允许使用变量的

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值