【语法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)    //  ↙  ↓  ↘


我们会审查剪贴板内容,并对发布不合适内容的同学进行相应的处理