内容正文:
第10章 结构型、共用型和枚举类型
10.1 结构类型与结构变量的定义
10.2 结构型变量的引用与初始化
10.3 结构数组
10.4 指向结构类型数据的指针
10.5 链表处理---结构指针的应用
10.6 共用型和枚举型
10.7 用户自定义类型
10.1 结构类型与结构变量的定义
10.1.1结构类型定义
构造类型是由相同或不同的数据类型组合而成的。数组是构造类型,但它只能存放数据类型相同的一批数据。为了能将不同数据类型的数据存放在一起,C语言规定用户可以自己定义一种数据类型来存放类型不同的数据。这种数据类型就称为“结构型”。
定义一个结构的一般形式为:
struct 结构名
{ 数据类型1 成员1名;
数据类型2 成员2名;
……
数据类型n 成员n名;
}; /* 注意:分号“;”不能省略 */
下一页
返回
10.1 结构类型与结构变量的定义
10.1.2结构型变量的定义
1.先定义结构,再说明结构变量。
如:struct stu
{ int num;
char name[20];
char sex;
float score;
};
struct stu boy1,boy2;
说明了两个变量boy1和boy2为stu结构类型。
上一页
下一页
返回
10.1 结构类型与结构变量的定义
2. 在定义结构类型的同时说明结构变量。例如:
struct stu
{ int num;
char name[20];
char sex;
float score;
}boy1,boy2;
上一页
下一页
返回
10.1 结构类型与结构变量的定义
3. 直接说明结构变量。例如:
struct
{ int num;
char name[20];
char sex;
float score;
}boy1,boy2;
上一页
返回
10.2 结构型变量的引用与初始化
10.2.1结构型变量的引用与赋值
引用结构变量成员的一般形式是: 结构变量名.成员名
例如:boy1.num 即第一个人的学号 boy2.sex 即第二个人的性别 ,如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如:boy1.birthday.month 即第一个人出生的月份成员,可以在程序中单独使用,与普通变量完全相同。
结构变量的赋值就是给各成员赋值。 可用输入语句或赋值语句来完成。
下一页
返回
10.2 结构型变量的引用与初始化
10.2.2结构型变量的初始化
和其它类型变量一样,对结构体变量可以在定义时指定初始值。
例10.2 结构变量初始化。
struct stu /*定义结构*/
{ int num;
char *name;
char sex;
float score;
} boy2,boy1={102,"Zhang ping",'M',78.5};
上一页
下一页
返回
10.2 结构型变量的引用与初始化
main()
{ boy2=boy1;
printf("Number=%d
Name=%s
",boy2.num,boy2.name);
printf("Sex=%c
Score=%f
",boy2.sex,boy2.score);
}
上一页
下一页
返回
10.3 结构数组
如果在程序中定义某个结构型,不但可以用它来定义变量并赋初值,也可以用它定义数组并初始化。
当使用指针变量指向结构型数组或其元素时,也应遵守指针变量的数据类型和结构型数组或元素的数据类型相同的原则。
结构数组的每一个元素都是具有相同结构类型的下标结构变量。 在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。 结构数组的定义方法和结构变量相似,只需说明它为数组类型即可
返回
10.4 指向结构类型数据的指针
10.4.1指向结构型变量的指针
定义指向结构型变量的指针变量和定义结构型变量的方法基本相同,惟一的区别是在指针变量名的前面加一个指针标记“*”。可以将结构型和指针变量分开来定义,也可以同时定义结构型和对应的指针变量,使用后一种方法还可以省略结构型的名称。
当一个结构型变量的地址已赋予相同结构型的指针变量(即指针变量指向变量),就可以使用下列两种方式来引用该结构型变量的成员,其作用完全相同。
方式1 (*