C语言:二维数组变一维数组

本文详细介绍了如何在C语言中实现一维数组与二维数组之间的相互转换,通过具体示例代码展示了转换过程及操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二维数组就是一维数组 直接循环

 例如 a[3][4] 可以直接用*p指向 然后 p++ 只要不超过3x4就行

#include <stdio.h>
#define N 3
#define M 4
int main()
{
    int a[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p;
    p=(int *)a;//将二维数组a变成一维数组p
    for(i=0;i<N;i++){
        for(j=0;j<M;printf("%3d",a[i][j++]));//用数组名a仍然按二维数组操作
        printf("\n");
    }
    printf("\n");
    for(j=M*N,i=0;i<j;printf("%3d",p[i++]));//用p则按一维数组操作
    printf("\n");
    return 0;
}

一维数组变二维数组

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值