所謂結構體陣列,是指陣列中的每個元素都是一個結構體。在實際應用中,結構體陣列常被用來表示一個擁有相同資料結構的群體,比如一個班的學生、一個車間的職工等。
定義結構體陣列和定義結構體變數的方式類似,請看下面的例子:
struct stu{
char *name; //姓名
int num; //學號
int age; //年齡
char group; //所在小組
float score; //成績
}class[5];
表示一個班級有5個學生。
再如:
假如要定義一個班級40個同學的姓名、性別、年齡和住址, 可以定義成一個結構陣列。如下所示:
struct{
char name[8];
char sex[2];
int age;
char addr[40];
}student[40];
也可定義為:
struct string{
};
struct string student[40];
需要指出的是結構陣列成員的訪問是以陣列元素為結構變數的, 其形式為:
結構陣列元素.成員名
例如:
student[0]
.name
student[30]
.age
實際上結構陣列相當於一個二維構造, 第一維是結構陣列元素, 每個元素是
一個結構變數, 第二維是結構成員。
注意: 結構陣列的成員也可以是陣列變數。
所謂結構體陣列,是指陣列中的每個元素都是一個結構體。在實際應用中,結構體陣列常被用來表示一個擁有相同資料結構的群體,比如一個班的學生、一個車間的職工等。
定義結構體陣列和定義結構體變數的方式類似,請看下面的例子:
struct stu{
char *name; //姓名
int num; //學號
int age; //年齡
char group; //所在小組
float score; //成績
}class[5];
表示一個班級有5個學生。
再如:
假如要定義一個班級40個同學的姓名、性別、年齡和住址, 可以定義成一個結構陣列。如下所示:
struct{
char name[8];
char sex[2];
int age;
char addr[40];
}student[40];
也可定義為:
struct string{
char name[8];
char sex[2];
int age;
char addr[40];
};
struct string student[40];
需要指出的是結構陣列成員的訪問是以陣列元素為結構變數的, 其形式為:
結構陣列元素.成員名
例如:
student[0]
.name
student[30]
.age
實際上結構陣列相當於一個二維構造, 第一維是結構陣列元素, 每個元素是
一個結構變數, 第二維是結構成員。
注意: 結構陣列的成員也可以是陣列變數。