在C语言中,可以通过循环遍历二维数组,将每个元素逐个存储到一维数组中来实现二维数组转一维数组的操作。具体实现如下:
#include <stdio.h>
void convert2DTo1D(int arr[][3], int row, int col, int *result) {
int k = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
result[k++] = arr[i][j];
}
}
}
int main() {
int arr2D[2][3] = {{1, 2, 3}, {4, 5, 6}};
int row = sizeof(arr2D) / sizeof(arr2D[0]);
int col = sizeof(arr2D[0]) / sizeof(arr2D[0][0]);
int size = row * col;
int arr1D[size];
convert2DTo1D(arr2D, row, col, arr1D);
for (int i = 0; i < size; i++) {
printf("%d ", arr1D[i]);
}
printf("\n");
return 0;
}
在上面的代码中,convert2DTo1D
函数接收一个二维数组、行数、列数和一个指向一维数组的指针作为参数。函数内部使用两个嵌套的循环来遍历二维数组,并将每个元素依次存储到一维数组中。
在main
函数中,先计算出二维数组的行数和列数,然后根据行数和列数计算出一维数组的大小。然后声明一个一维数组,并调用convert2DTo1D
函数将二维数组转换为一维数组。最后,通过循环遍历一维数组并打印结果。