C语言——多维数组

知识点一:数组作为数组的元素

          1)有一个数组A,它的元素为 int 类型,元素数量为10个;另外有一个数组B,它的元素类型为包含10个int元素的数组,元素数量为5个;

            2)数组的声明由数组名元素类型元素数量组成;

                 a)数组名:B

                 b)元素类型:int[10]

                 c)元素数量: 5

int[10] B[5];

@@数组名左边的方括号都移到最右边来

int B[5][10];

@@这样就是B数组的声明了。B数组含有5个元素,而每个元素都是含有10个int元素的数组;

 知识点二:二维数组

            1)二维数组初始化;元素类型  数组名[元素数量]={ 逗号分隔的元素内容}

                a)我们这样初始化一个一维数组;

int A[10] = {0, 1, 2, 3, 4, 5 ,6 ,7 ,8 ,9};

                b)对于一个二维数组,它的每一个元素都是一个数组;

int B[5][10] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
{10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
{20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
{30, 31, 32, 33, 34, 35, 36, 37, 38, 39},
{40, 41, 42, 43, 44, 45, 46, 47, 48, 49}
}

               c)类似于一维数组,初始化列表中的常量个数少于元素个数,将使用0初始化元素;

int B[5][10] = {
{0, 1, 2, 3, 4, 5},
{10, 11, 12, 13, 14, 15},
{20, 21, 22},
{30},
{}
}

                d)也可以省略里面的花括号;

int B[5][10] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49
}

                 e)省略内层花括号时,如果元素的个数不足。那么后续的将元素将使用0初始化;

int B[5][10] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19
}

           2)访问或修改二维数组元素

                 a)访问二维数组元素(由于二维数组有两个下标,所以我们一般使用嵌套循环来遍历二维数组);

#include <stdio.h>
int main()
{
int B[5][10] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
{10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
{20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
{30, 31, 32, 33, 34, 35, 36, 37, 38, 39},
{40, 41, 42, 43, 44, 45, 46, 47, 48, 49}
};
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 10; j++)
{
printf("%d ", B[i][j]);
}
printf("\n");
}
return 0;
}

               

                 b)修改二维数组元素(可以使用赋值运算符修改二维数组元素);

B[i][j] = B[i][j] * 2; // 修改二维数组值

       @下面的代码将二维数组每个元素都设置为原来的2倍

#include <stdio.h>
int main()
{
int B[5][10] = {
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
{10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
{20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
{30, 31, 32, 33, 34, 35, 36, 37, 38, 39},
{40, 41, 42, 43, 44, 45, 46, 47, 48, 49}
};
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 10; j++)
{
B[i][j] = B[i][j] * 2; // 修改二维数组值
}
}
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 10; j++)
{
printf("%d ", B[i][j]);
}
printf("\n");
}
return 0;
}

 知识点三:更高维度的数组

            1)如果将二维数组作为数组的元素,那么可以实现三位数组。依此类推,可以实现更高维度的数组;

int C[2][5][10];

@@数组C,有两个元素,每个元素是一个int[5][10]类型的二维数组。

           2)对于三维数组,我们会使用三重循环来访问或修改元素值;

#include <stdio.h>
int main()
{
int B[2][5][10] = {
{
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
{10, 11, 12, 13, 14, 15, 16, 17, 18, 19},
{20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
{30, 31, 32, 33, 34, 35, 36, 37, 38, 39},
{40, 41, 42, 43, 44, 45, 46, 47, 48, 49}
},
{
{-0, -1, -2, 3, -4, -5, -6, -7, -8, -9},
{-10, -11, -12, -13, -14, -15, -16, -17, -18, -19},
{-20, -21, -22, -23, -24, -25, -26, -27, -28, -29},
{-30, -31, -32, -33, -34, -35, -36, -37, -38, -39},
{-40, -41, -42, -43, -44, -45, -46, -47, -48, -49}
}
};
for(int i = 0; i < 2; i++)
{
    for(int j = 0; j < 5; j++)
    {
        for(int k = 0; k < 10; k++)
        {
            printf("%d ", B[i][j][k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_73463638/article/details/127482767