结构数组
执行下面的代码,声明结构数组。
#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;
}
也可以通过下面的方式声明结构数组并进行初始化。
#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;
}
执行下面的代码,计算结构所占用的存储空间字节数。
#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;
}