c++ 一维数组与二维数组的转换

#include <iostream>

using namespace std;

#define COL 4
#define ROW 3

int main(int argc, char *argv[]) {
    unsigned char m[12] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'm'};
    unsigned char n[COL][ROW];
    for(int i=0;i<COL;i++){
        for(int j=0;j<ROW;j++){
            n[i][j] = m[i*ROW+j];
        }
    }

    for(int i=0;i<COL;i++){
        for(int j=0;j<ROW;j++){
            cout<<"n["<<i<<"]["<<j<<"]="<<n[i][j]<<"  ";
        }
        cout<<endl;
    }

    unsigned char *p = (unsigned char *)n;
    for(int i=0;i<COL*ROW;i++){
        cout<<p[i]<<" ";
    }
    cout<<endl;


    return 0;
}

运行结果:

n[0][0]=a n[0][1]=b n[0][2]=c

n[1][0]=d n[1][1]=e n[1][2]=f

n[2][0]=g n[2][1]=h n[2][2]=i

n[3][0]=j n[3][1]=k n[3][2]=m

a b c d e f g h i j k m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值