MST

星途 面试题库

面试题:C语言二维数组初始化的多种方式

请列举出C语言中二维数组初始化的至少三种不同方式,并说明每种方式的适用场景。例如初始化一个3行4列的二维数组。
36.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 按行初始化
int arr[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

适用场景:当你清楚地知道每一行的具体元素值,并且数据是按行逻辑组织的时候适用。比如表示矩阵,矩阵每一行有特定的含义,这种方式可以清晰地表示每一行的数据。

  1. 按顺序初始化
int arr[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

适用场景:当数据是连续的、按顺序排列的,并且不需要特别强调行的逻辑划分时适用。例如,从文件中按顺序读取数据来初始化二维数组,这种方式较为简洁。

  1. 部分初始化
int arr[3][4] = {
    {1, 2},
    {5}
};

适用场景:当大部分元素值为0,只需要初始化部分元素时适用。比如在构建稀疏矩阵,只需要对非零元素进行初始化,其余元素系统会自动初始化为0。

  1. 动态初始化(借助循环)
int arr[3][4];
for(int i = 0; i < 3; i++){
    for(int j = 0; j < 4; j++){
        arr[i][j] = i * 4 + j + 1;
    }
}

适用场景:当元素值需要通过一定的计算逻辑得出,而不是固定值的时候适用。例如生成一个有规律的矩阵,像杨辉三角等,通过循环计算每个元素的值。