C语言 数组的详细讲解

92 阅读4分钟

C语言 数组的详细讲解

C语言 数组的介绍

首先我们是可以知道的是: 变量是可以用来保存保存一个基础的数据类型

但是如果我们想要同时保存多个相同数据类型的数据,我们该怎么做耶???

这个时候我们就可以使用的是我们的数组来实现这样的需求,来实现保存多个相同数据类型的数据

数组也是我们的一种需要经常进行处理的数据结构

C语言 数组的定义

定义的格式

type arrayName[arraySize]

type 这个就是我们的指定的数据结构 int float char 等等

arrayName 数组的名称 只要满足于变量名的定义规则即可

arraySize 数组的大小 就是指定我们的数组中可以实现保存多少个数组元素

// 这个时候,我们就实现定义了一个数组长度为 30 个元素的数组
int day[30];

注意点(也是局限性):只能够用来保存一种数据类型的元素,长度实现定义后不可更改

C语言 数组初始化

就是实现的是在数组在定义后给我们的数组进行赋值的操作,同时我们的实现赋值的时候,我们实现使用的是 {}

初始化的基本格式为: type arrayName[arraySize] = {ele1, ele2, ele3...}

int a[5] = {10, 21, 32, 7, 10};

这个时候,我们的数据个数等于数组长度 araySize,这个只是我们的理想化状态

其他的情况是:

当元素个数小于数组长度的时候,我们的实现的效果就是:

剩下的几个元素直接使用我们的 0 来实现填充, 根据不同的数据类型,填充 0 的格式也会有所不同

需要注意的是,我们的数组实现定义的时候,我们是可以不用书写 arraySize 的,这个时候编译器会自动判断 arraySize

但是我们的这一个特点并不是表明我们的数组的长度是动态变化的,任然还是一个固定大小长度的数据结构

int a[] = {10, 21, 32, 7, 10};

C语言 数组的使用

数组元素的访问 : arraySize[index]

就是我们的数组的访问就是通过的我们的数组的下标来实现的访问数组中的元素的

但是需要注意的是,我们任何编程语言中的数组的下标都是从 0 开始的进行递增的

所以说我们是可以通过我们的 循环遍历 来实现访问我们的数组中的元素的

#include <stdio.h>
 
int main()
{
   int a[] = {10, 21, 32, 7, 10};
​
   printf("第三个元素的访问:  %d", a[2]);
}
#include <stdio.h>
 
int main()
{
   int a[] = {10, 21, 32, 7, 10};
​
   printf("第三个元素的访问:  %d\n", a[2]);
​
   for(int i = 0; i < sizeof(a)/ sizeof(int); i++) {
    printf("第 %d 个元素的访问:  %d\n",i ,a[i]); 
   }
}

C语言 二维数组的定义

可以理解的就是我们的 二维数组就是将我们的多个一维数组进行的整合

相当于就是实现的是将我们的 一维数组中的每一个元素实现的 替换成 数组, 这个就形成了我们的 二维数组

定义基本格式: type arrayName[rows] [cols];

只要理解为这个是把一维数组中的每个元素实现的是我们的替换成每一个的数组元素,那么其中的注意事项就是一样的

int arr[3][4];  // 三行四列的二维数组

C语言 二位数组初始化

就是在我们的定义的格式上实现的赋值操作

int arr[3][4] = {
    arr1,
    arr2,
    arr3
};

然后我们的内部每一个 数组元素就具有 4 个元素

先实现的是存储列数然后实现的是存储行数

int arr[3][4] = {
    {}, {}, {}
};

没有赋值的元素默认为 0

C语言 二维数组的使用

我们实现使用我们的二维数组就是实现的是对其简单的遍历以及操作即可,同时数组还是可以和指针一起使用的

通过我们的指针的偏移来实现访问我们数组中的元素

#include <stdio.h>
 
int main()
{
  int arr[3][4] = {
      {1, 2, 3, 4}, 
      {5, 6, 7, 8}, 
      {9, 10, 11, 12}
  };
​
  for(int i = 0; i < sizeof(arr)/ sizeof(arr[0]); i++) {
    for (int j = 0; j < sizeof(arr[0])/sizeof(int); j++) {
      printf("第 %d 行 第 %d 列的元素为: %d \n", i, j, arr[i][j]);
    }
  }
}

C语言 字符数组

首先我们的字符数组的话需要注意的是,需要有一个标识一维数组结束的标识符

定义的基本形式就是: char arrayCharName[arraySize] = [, , , , "\0"]

\0 这个就是我们的字符数组的结束的标识

字符串只具有一个隐藏的字符的 \0