☰
数组的介绍
2026/10/11 5:53:32 网站建设 项目流程

1.数组的概念

数组是⼀组相同类型元素的集合;

数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。

2.数组的创建及使用

例:

int arr[10]

int 位置存放的是数组中存放数据的类型;

arr位置存放的是数组名的名字,这个名字根据实际情况,起的有意义就⾏;

[]中的常量值是⽤来指定数组的⼤⼩的,这个数组的⼤⼩是根据实际的需求指定就⾏;
数组的初始化分为完全初始化和不完全初始化,
完全初始化:
int arr[5] = {1,2,3,4,5};

不完全初始化:

int arr2[6] = {1};
第⼀个元素初始化为1,剩余的元素默认初始化为0。
数组的类型:数组算是⼀种⾃定义类型,去掉数组名留下的就是数组的类型;
例:int arr[10]的类型是int [10]。
数组的使用:
C语⾔规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1,下标就相当于数组元素的编号。
在C语⾔中数组的访问提供了⼀个操作符[],这个操作符叫:下标引⽤操作符。
我们可以通过下标引⽤操作符来引用数组。
#include <stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int i = 0; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } for (i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; }

3.数组在内存中的存储

我们得出结论:数组在内存中是连续存放的,并且我们发现每两个相邻的元素之间相差4(因为⼀个整型是4个字节)。

4.计算数组元素的个数

#include <stido.h> int main() { int arr[10] = {0}; int sz = sizeof(arr)/sizeof(arr[0]); printf("%d\n", sz); return 0; }

其中sz就是数组元素的个数。

5.二维数组的创建及使用

例如:int ar[3][5]

3表⽰数组有3⾏
5表⽰每⼀⾏有5个元素
int 表⽰数组的每个元素是整型类型
arr 是数组名
二维数组的初始化同样分为完全初始化和不完全初始化,
完全初始化:
int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,9,6,7};

不完全初始化:

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

一维数组和二维数组不完全初始化未显示的均为0;

初始化时省略⾏,但是不能省略列;
C语⾔规定,⼆维数组的⾏是从0开始的,列也是从0开始的。
使用如下:
二维数组的输入与输出
#include <stdio.h> int main() { int arr[3][5] = { 0 }; int i = 0;//遍历⾏ //输⼊ for (i = 0; i < 3; i++) //产⽣⾏号 { int j = 0; for (j = 0; j < 5; j++) //产⽣列号 { scanf("%d", &arr[i][j]); //输⼊数据 } } //输出 for (i = 0; i < 3; i++) //产⽣⾏号 { int j = 0; for (j = 0; j < 5; j++) //产⽣列号 { printf("%d ", arr[i][j]); //输出数据 } printf("\n"); } return 0; }

图片说明:第一行为输入,二三四行为输出。

每⼀⾏内部的每个元素都是相邻的,地址之间相差4个字节,跨⾏位置处的两个元
素(如:arr[0][4]和arr[1][0])之间也是差4个字节,所以⼆维数组中的每个元素也都是连续存放的。

6.数组的扩展练习

二分查找(折半查找):

#include <stdio.h> int main() { int arr[] = {1,2,3,4,5,6,7,8,9,10}; int left = 0; int right = sizeof(arr)/sizeof(arr[0])-1; int key = 7;//要找的数字 int mid = 0;//中间元素的下标 int find = 0; while(left<=right) { mid = (left+right)/2; if(arr[mid]>key) { right = mid-1; } else if(arr[mid] < key) { left = mid+1; } else { find = 1; break; } } if(1 == find ) printf("找到了,下标是%d\n", mid); else printf("没找到\n"); }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询