【语法5】数组
2025-8-16 16:50:57
~数组
一维数组
一维数组的定义
int a[5];
:定义5个int长度的数组。- 数组下标从
0
开始,int a[5]
的范围是a[0]到a[4]
。 - 数组定义时的长度需为常量(如5、100),不能使用变量(如n、ans)作为长度。
数组初始化
int a[5] = {}; //定义时初始化为全0
int a[5] = {1, 2}; //定义时初始化为全0,然后把前两项分别设置为1,2
int a[5] = {0}; //定义时初始化为全0,然后把第一项设置为0
int a[] = {3, 1, 2}; //定义时初始化3,1,2,并自动算出数组长度为3
int a[5]; //最安心的数组初始化
for (int i = 0; i < 5; i++)
a[i] = 0;
局部变量与全局变量
局部变量(只能在局部使用)
- 定义在函数内部、循环内部等位置的变量,如果没有指定初始值,初始值可能会是随机值。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int ans = 0; //定义在函数内部的变量,需要初始化
int a[5]; //初始化数组
for (int i = 0; i < 5; i++)
a[i] = 0;
return 0;
}
全局变量(能在全局使用)
- 定义在全局的变量,整个程序运行之前会清空(每个二进制位都置为0),即初始值为0。
#include <bits/stdc++.h>
using namespace std;
int n, ans; //定义在全局的变量,初始值为0.
int a[5]; //数组也会初始化为0
int main()
{
return 0;
}
多维数组
二维数组的定义
int a[2][3];
多维数组的定义
int a[11][21][101][2];
多维数组的输入与输出
- 以三维数组为例
int a[8][8][8];
for (int i = 1; i <= 3; i++)
for (int j = 1; j <= 3; j++)
for (int k = 1; k <= 3; k++)
{
cin >> a[i][j][k]; //输入
cout << a[i][j][k]; //输出
}
其他常见基础操作
同行、同列
- 以二维数组
a[x][y]
为例 - 同行: a[2][0]、a[2][1]、a[2][2]、a[2][3]
x相等即为同行
- 同列: a[0][3]、a[1][3]、a[2][3]、a[3][3]
y相等即为同列
同对角线
- 以二维数组
a[x][y]
为例 - 左下到右上: a[2][0]、a[1][1]、a[0][2]
(x+y=2) x+y相等即为同对角线
- 左上到右下: a[1][0]、a[2][1]、a[3][2]、a[4][3]
(x-y=1) x-y相等即为同对角线
边缘
- 以二维数组
a[x][y]
为例,x、y范围取1~n
x == 1 || x == n || y == 1 || y == n 即为边缘
周边
- 以二维数组
a[x][y]
为例
(x-1, y-1) (x-1, y ) (x-1, y+1) // ↖ ↑ ↗
( x , y-1) ( x , y ) ( x , y+1) // ← x,y →
(x+1, y-1) (x+1, y ) (x+1, y+1) // ↙ ↓ ↘
我们会审查剪贴板内容,并对发布不合适内容的同学进行相应的处理