面试题答案
一键面试- 按行初始化
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
适用场景:当你清楚地知道每一行的具体元素值,并且数据是按行逻辑组织的时候适用。比如表示矩阵,矩阵每一行有特定的含义,这种方式可以清晰地表示每一行的数据。
- 按顺序初始化
int arr[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
适用场景:当数据是连续的、按顺序排列的,并且不需要特别强调行的逻辑划分时适用。例如,从文件中按顺序读取数据来初始化二维数组,这种方式较为简洁。
- 部分初始化
int arr[3][4] = {
{1, 2},
{5}
};
适用场景:当大部分元素值为0,只需要初始化部分元素时适用。比如在构建稀疏矩阵,只需要对非零元素进行初始化,其余元素系统会自动初始化为0。
- 动态初始化(借助循环)
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;
}
}
适用场景:当元素值需要通过一定的计算逻辑得出,而不是固定值的时候适用。例如生成一个有规律的矩阵,像杨辉三角等,通过循环计算每个元素的值。