前面我们说过,结构体的变量在内存中是顺序存储的,基于这一点就可以初始化结构体定义的二维数组对象,并检验这个事情。
#include <iostream>
using namespace std;
typedef struct
{
uint8_t a;
uint8_t b[10];
uint8_t c[3];
}basic;
int main()
{
basic array[][4] =
{
{1,0,0},
{2,0,0},
{3,0,0,0,1},
{2,2,1,2,2},
{3,1,1,4,2,2,4,1,1,1,1,1,1,1},
};
for (int i = 0; i < 5; ++i)
{
cout << (unsigned int)array[i][0].a << " ";
}
cout << endl;
for (int i = 0; i < 5; ++i)
{
cout << (unsigned int)array[i][0].b[4]<<" ";
}
cout << endl;
for (int i = 0; i < 5; ++i)
{
cout << (unsigned int)array[i][0].c[1] << " ";
}
cout << endl;
basic test[][5] =
{
{{1,0,0},
{2,0,0},
{3,0,0,0,1},
{2,2,1,2,2},
{3,1,1,4,2,2,4}}
};
for (int i = 0; i < 5; ++i)
{
cout << (unsigned int)test[0][i].a << " ";
}
cout << endl;
for (int i = 0; i < 5; ++i)
{
cout << (unsigned int)test[0][i].b[3] << " ";
}
cout << endl;
system("pause");
return 0;
}
结果为: