# 结构数组

执行下面的代码，声明结构数组。

```c
#include <stdio.h>
#include <string.h>

struct person
{
	char name[20];
	int age;
};

int main(int argc, char const *argv[])
{
	struct person p[3];
	strcpy(p[0].name, "Tom");
	p[0].age = 18;
	printf("name: %s, age: %d.\n", p[0].name, p[0].age);
    strcpy(p[1].name, "Jerry");
	p[1].age = 16;
	printf("name: %s, age: %d.\n", p[1].name, p[1].age);
	strcpy(p[2].name, "Spike");
	p[2].age = 20;
	printf("name: %s, age: %d.\n", p[2].name, p[2].age);
	return 0;
}
```

也可以通过下面的方式声明结构数组并进行初始化。

```c
#include <stdio.h>

struct person
{
	char name[20];
	int age;
} p[3] = {
	{"Tom", 18},
	{"Jerry", 16},
	{"Spike", 20}
};

int main(int argc, char const *argv[])
{
	printf("name: %s, age: %d.\n", p[0].name, p[0].age);
	printf("name: %s, age: %d.\n", p[1].name, p[1].age);
	printf("name: %s, age: %d.\n", p[2].name, p[2].age);
	return 0;
}
```

执行下面的代码，计算结构所占用的存储空间字节数。

```c
#include <stdio.h>

struct person
{
	char name[20];
	int age;
};

int main(int argc, char const *argv[])
{
	struct person p[3];
	printf("%d\n", sizeof p);
	printf("%d\n", sizeof(p));
	return 0;
}
```

