C ++ / C ------ two-dimensional array to a one-dimensional array

initialization

int a[3][3];//方式1
int b[][3];//方式2

used internal memory

int  Memory_usage = sizeof(a);//Memory_usage 为数组占用的内存空间
int  Single_usage = sizeof(a[0][0]);//Single_usage 为一个元素占用的内存空间

Turn a two-dimensional array array

Method 1:

#include <iostream>
using namespace std;

int a[3][3] = {1,2,3,4,5,6,7,8,9};

int main()
{
    int row = sizeof(a) / sizeof(a[0]);//行数
    int col = sizeof(a[0]) / sizeof(a[0][0]);//列数

    int b[row*col];
    int cnt=0;
    for(int i = 0; i < row; i++)
    {
        for(int j = 0; j<col; j++)
        {
            b[cnt]=a[i][j];
            cnt++;
        }
    }

    for(int k = 0;k < cnt; k++)
    {
        cout<<b[k]<<" ";
    }
    return 0;
}

Method 2:

#include <iostream>
using namespace std;

int a[3][3] = {1,2,3,4,5,6,7,8,9};

int main()
{
    int row = sizeof(a) / sizeof(a[0]);//行数
    int col = sizeof(a[0]) / sizeof(a[0][0]);//列数
    int * p = a[0];

    for(int i = 0; i < row * col; i++)
    {
        cout<<*p++<<endl;
    }

    return 0;
}
Published 14 original articles · won praise 30 · views 8736

Guess you like

Origin blog.csdn.net/weixin_43086497/article/details/104848859