C语言数组详解(超详细!!)

一、数组的概念

      数组是一段相同类型元素的集合。从中有两个限制条件

1、数组存放的是1个或者多个元素,且元素个数不能为0。

2、数组存放的多个元素的类型必须相同。

      数组可以分为一维数组和多维数组,多维数组其中二维数组最常用。

二、一维数组的创建

1、数组创建

一维数组创建的基本语法如下:


type arr_name[常量值];

存放在数组中的值称为元素,数组的大小和数组的元素类型是在数组创建的时候来规定的。

type指定的是数组的元素类型,比如 int 代表元素都是整型,还可以是:char、short、int、float等,还可以是自己定义的类型。

arr_name指定的是数组的名字,没有什么特殊的要求,只要起的有意义就可以了。

[ ]中的常量值是⽤来指定数组的大小的,这个数组的大小是根据实际的需求指定就可以了。

我们来举个例子去创建一个数组,假如我们要储存一周内每一天的消费,数组如下:


int consumption[7];

2、数组初始化

有的时候,数组在创建的时候需要给定一些值,这就叫做初始化。

那么我们该如何给定他们值来初始化呢?代码如下 :

int arr1[5] = {1,2,3,4,5};
int arr2[5] = {1};
int arr3[5] = {1,2,3,4,5,6};

数组的初始化需要后面的大括号来定义 。

第一行代表的是完全初始化,给定了数组中全部的元素相应的值。

第二行则代表的是不完全初始化,数组中的值第一个为1,其他的默认为0。

第三行则是错误的初始化,初始化的项太多。

3、数组的类型

数组是有类型的,数组其实算是一种自定义类型,去除掉数组的名字就是他们的类型。

简单拿代码来举例吧

int arr1[5];
int arr2[20];

char ch[5];

其中arr1的数组类型就是 int [5]

arr2的数组类型就是int[20]

ch的数组类型就是char[5]

三、一维数组的使用

1、数组下标

C语言中规定在数组中每一个元素下面都会对应一个下标,下标从0开始,假设一个数组中有n个元素,那么对应的下标就是n-1,如下

int arr[10] = {1,2,3,4,5,6,7,8,9,10}
               V V V V V V V V V V 
               V V V V V V V V V V
        下标: 0 1 2 3 4 5 6 7 8 9

C语言中的[ ]其实叫做:下标引用操作符。

我们可以利用下标引用操作符来很轻松的访问到数组中相应的元素。假如我们想要在arr中访问下标为5的元素,我们就可以用arr[5],想要下标为8的元素就可以用arr[8]。

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d",arr[5]);
printf("%d",arr[8]);

打印出来的就是 6 和 9

2、数组元素的打印和输入

假如一个数组比较长,而我们又想要知道他的所有元素,用很多个printf函数显然是不合适的,那么我们该怎么办呢?

其实很简单,只要我们把每一个下标都产生出来就好了,我们可以使用前面讲的for循环产生出下标,然后再用下标进行访问就可以了,具体代码如下:

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(int i = 0;i<10;i++)
{
    printf("%d ",arr[i]);
}

这样就可以把所有元素打印出来了。

那么如果我们想要自己给数组传入我们想要输入的数据,该怎么办呢?具体代码如下

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(int i = 0;i<10;i++)
{
    scanf("&d",&arr[i]);
}
for(int a = 0;a<10;a++)
{
    printf("%d ",arr[a]);
}

这样就实现了我们给这个数组十个数据并且把他们打印了出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值