C++/C------二维数组转一维数组

初始化

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

占用内存

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

二维数组转一位数组

法1:

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

法2:

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

你可能感兴趣的:(C/C++)