c++之结构体二维数组对象的初始化

前面我们说过,结构体的变量在内存中是顺序存储的,基于这一点就可以初始化结构体定义的二维数组对象,并检验这个事情。

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

结果为:
在这里插入图片描述


版权声明:本文为weixin_42579072原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。