1、 结构数组 数组元素也可以是结构体类型的数据,当数组元素为结构体类型时,就称为结构数组。 1.1 结构数组的定义 - <font size="4">struct employee /*定义名为employee结构体*/
- {
- int num;
- char name[20];
- char sex;
- int age;
- float wage[12];
- } emp1[3];
- ……
- struct student emp2[3];
- 对结构数组赋予初值的格式如下:
- {{数组元素1的各个成员的初值表},{数组元素2的各个成员的初值表},……}</font>
复制代码1.2 结构数组的引用 - <font size="4">struct employee
- {
- int num;
- char name[20];
- float wage;
- }emp[100];</font>
复制代码1)结构数组首地址的引用方法: 结构数组名 &结构数组名[0]
例如:用emp或&emp[0]表示结构数组emp的首地址。 2)结构数组元素的引用方法与普通数组的引用方法相似: 下标法:结构数组名[下标] 指针法:*(结构型数组名+下标) 例如:如果要获得结构数组的第4个员工的信息,表示方法:emp[3] *(emp+3) 3)结构数组元素的引用方法: &结构数组名[下标] 结构数组名+下标 &emp[3]和(emp+3)表示结构数组emp第4个元素的地址。 4)结构数组元素的成员的引用方法: 结构数组名[下标].成员名 (*(结构型数组名+下标)).成员名 例如:如果要获得结构数组第2个员工的姓名,表示为: emp[1].name (*(emp+1)).name (5)结构数组元素的成员地址的引用方法: &结构数组名[下标].成员名 &(*(结构型数组名+下标)).成员名 如果要获得结构数组第2个员工的姓名存储地址,表示为: &emp[1].name
&(*(emp+1)).name 1.3 结构体指针 指向结构体的指针称为结构体指针,结构体指针变量也是指针变量,和普通指针变量的惟一区别就是这个指针指向的一同一种结构体变量或结构数组。 1.3.1 结构体指针变量的定义 结构体指针变量的定义与结构体变量、结构数组的定义相似。结构体指针变量的定义也分为三种形式,一是在先定义结构体,后定义结构型指针;二是在定义结构体的同时定义结构体指针;三是直接定义结构体指针。一般形式为: struct 结构体名 *结构指针变量名; - struct employee /*定义名为employeet的结构体*/
- {
- int num;
- char name[20];
- char sex;
- int age;
- float wage[12];
- }*p1; /*定义结构体同时定义结构体指针变量*/
- …
- struct employee *p2; /*先定义结构体再定义结构体指针变量*/
复制代码1.3.2 结构体指针变量的引用 结构体指针变量的引用有以下几种: (1)使用结构体指针变量指向结构体变量或结构型数组 结构体指针变量=&结构体变量 结构体指针变量=&结构数组名[下标] 结构体指针变量=结构数组名+下标 结构体指针变量=结构数组名 (2)指向结构体变量或数组元素的指针变量的引用 p1=&emp1; *p (3)指向结构体数组首地址的指针变量的引用 p2=emp;
*(p2+4) (4)使用指向结构体变量或结构数组的指针变量引用其成员 (*结构体指针变量).成员名 结构体指针变量—>成员名 例如: (*p1).num p1—>num (5)使用指向结构数组首地址的指针变量引用其成员 (*(结构体指针变量+下标)).成员名 (结构体指针变量+下标)—>成员名 例如: p2=emp2; (*(p2+1)).num
(p2+1)—>num
|