内容正文:
第10章
结构体和公用体
第10章结构体和共用体
结构体和共用体(也称联合)是程序设计中常用
的数据类型,常用于描述实际问题中具有多个不同数
据成员的一类实体。
9.1概述
9.2
结构体与结构体类型变量
9.3
结构体数组
9.4
指向结构体类型数据的指针
9.5
动态存储分配与链表
9.6
共用体
9.7
枚举类型
9.8
用Typedef定义类型
9.9
应用实例
学生成绩管理系统
10.1概述
在实际应用中,人们经常需要将不同类型的数
据作为一个整体来处理
。
比如:要描述一个学生的基本情况,就需要记
录他的学号、姓名、年龄、性别、身份证号、家
庭住址等信息。
学号
姓名
年龄
性别
身份证号
家庭住址
(长整型)
(字符串)
(整型)
(字符型)
(长整型)
(字符串)
struct student
{
long num;
构体
struct addr
1
char name[20];
构体是{
int age;
本这种
char name[20];
*姓名*/
char sex;
char department[30];
*部门*
long certificate;
构体的
char address[30];
*家庭住址*/
char address[40];
部分
。
long box;
/邮编*/
}
类到
long phone;
*电话号码*/
声明一个结构体多
char email[30];
/*E-mail*/
struct结构体名
【例10.1】如果通讯地址表由下面的项目构成:
姓名
部门
家庭住址
邮编
电话号码
E-mail
(字符串)
(字符串)
(字符申)
(长整型)
(长整型)
(字符事)
10月01
(1)先定义结构体类型
(2)在定义结构体类型的同时定义结构体变量。
一般形式为:
有以下三
struct student
struct student
struct结构名
{
{
int num;
{
结构体成员表列
int num;
char name[20];
float score;
}变量名表列;
char name[20];
float score;
}:
boy1,boy2;
struct student boy1,bo.
(3)直接定义结构体类型变量。
struct
一般形式为:
{
struct
int num;
{
char name[20];
结构体成员表列
float scorce;
}变量名表列
boy1,boy2;
struct date
/*说明一个结构体类型*
{
int month;
int day;
量的定义
int year;
。
struct student
{
一个结构体类型进行操作。编译
int num;
间。
char name[20];
:相当于普通变量。
char sex;
嵌套结构。
int age;
struct date birthday;/*birthday是struct date类型*y
char address[20];
student1 stud
birthday
num
name
sex
age
address
4)结构体中的成员名可以与程序中的变量名相同,但二者代表
不同的对象。
10.2.3结构体变量的3引用
结构体变量也可以像其他类型的变量一样赋值、存取或运
算,所不同的是结构体变量必须以成员作为基本单位来参
与
·结构体成员的表示方法为:
结构体变量名成员名
·例如:
。student.num表示第一个人的学号;
。student2.sex表示第二个人的性别。
【例10.2】结构体变量的赋值并输出其值。
#include"stdio.h"
程序的运行结果:
void main(
{struct stu
input sex and score:M 96
int num;
number=102
char *name;
name=zhang ping
char sex;
sex=M
float score;
score=96.00
}boy1,boy2;
boy1.num=102;
1)1
boy1.num="zhang ping";
stud
printf("input sex and score:");
2)scanf("%c%f&boy1.sex,&boy1.score);
print boy2=boy1;
对结
printf("number=-%d
name-=%sn",boy2.num,boy2.name);变量的类型必须完全
一致
printf("sex=%cInscore=%.2fn",boy2.sex,boy2.score);
stuc
仅在以下两种情况下,可以把结构体变量作为一个整体来访问(引用)。
【例1