对二维数组用两次循环,将其赋值到一维数组就够了。
举个例子,二维数组a[N][M],一维数组b[]
编写主函数部分:
int i,j,k=0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
b[k++]=a[i][j];
反之一维转二维
#include <stdio.h>
#include <stdlib.h>
#define ROW 3
#define COL 2
int main(int argc, char *argv[])
{
int arr1D[] = {1,2,3,4,5,6};
int arr2D[ROW][COL];
int i,j;
//一维维整型数组转换为二维整型数组
for(i=0;i<ROW;i++)
{
for(j=0;j<2;j++)
{
arr2D[i][j]=arr1D[i*COL+j];
}
}
//二维整型数组打印显示
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
{
printf("%d ", arr2D[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
二维数组就是一维数组 直接循环就行 例如 a[3][4] 可以直接用*p指向 然后 p++ 只要不超过3x4就行
#include <stdio.h>