学科分类
目录
C语言

结构体数组的定义与初始化

假设一个班有20个学生,描述这20个学生的信息,可以定义一个容量为20的struct Student类型的数组。与结构体变量定义方式一样,结构体数组的定义方式也有两种,下面分别进行介绍。

1、 先定义结构体类型,后定义结构体数组

具体示例如下:

struct Student       //定义struct Student结构体类型
{
  int num;
  char name[10];
  char sex;
};
struct Student stus[20];  //定义struct Student结构体数组stus

2、 在定义结构体类型的同时定义结构体数组

具体示例如下:

struct Student
{
  int num;
  char name[10];
  char sex;
}stus[20];

结构体数组的初始化方式与普通类型的数组类似,都是通过为元素赋值的方式完成的。由于结构体数组中的每个元素都是一个结构体变量,因此,在为每个元素赋值的时候,需要将其成员的值依次放到一对大括号中。

例如,定义一个大小为3的struct Student结构体数组students,可以采用下列两种方式初始化students数组。

1、先定义结构体类型,然后定义结构体数组并初始化结构体数组

具体示例如下:

struct Student
{
  int num;
  char name[10];
  char sex;
};
struct Student students[3]={{0001, "Zhang San",'M'},
{0002, "Li Si",'W'},
{0003, "Zhao Liu",'M'}
};

2、在定义结构体类型的同时,定义结构体数组并初始化结构体数组

具体示例如下:

struct Student
{
  int num;
  char name[10];
  char sex;
}students[3]={    {0001, "Zhang San",'M'},
                {0002, "Li Si",'W'},
                {0003, "Zhao Liu",'M'}
};

当然,初始化结构体数组时,也可以不指定结构体数组的长度,系统在编译时,会自动根据初始化元素个数决定结构体数组的长度。例如,下列初始化结构体数组的方式也是合法的。

struct Student
{
  int num;
  char name[10];
  char sex;
}students[]={    {0001, "Zhang San",'M'}, 
                {0002, "Li Si",'W'},
                {0003, "Zhao Liu",'M'}
};
点击此处
隐藏目录