第10章自定义数据类型.pptx
第10章;第10章自定义数据类型;10.1自定义数据类型引入;10.1.1问题与引例;问题分析:
本例建立的学生登记表是一个经常使用的二维表,这个表格由若干行若干列构成,每一行是由不同数据类型的数据组成,显然每一行的数据不能用数组进行存储和处理,因此,需要用户定义一种新的数据类型来进行处理。;10.1.2结构体的概念;10.2结构体类型;10.2.1结构体类型及其变量的引用;注意:
花括号后面的分号是不可少的。
结构体定义之后,即可进行变量定义,凡说明为结构体student的变量都由上述4个成员组成。
结构体是一种复杂的数据类型,是数目固定、类型不同的若干个有序变量或数组的集合。;2.结构体类型变量的定义
定义结构体变量有以下三种方法:
(1)先定义结构体类型,再声明该类型变量;2.结构体类型变量的定义
定义结构体变量有以下三种方法:
(1)先定义结构体类型,再声明该类型变量;2.结构体类型变量的定义
定义结构体变量有以下三种方法:
(2)在定义结构体类型的同时声明结构体变量;2.结构体类型变量的定义
定义结构体变量有以下三种方法:
(3)直接定义结构体变量;说明:
(1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如
structTeacher
structWorker
structDate等结构体类型
各自包含不同的成员;说明:
(2)结构体成员也可以属于另一个结构体类型
structDate
{intmonth;intday;intyear;};
structStu
{intnum;charname[20];
charsex;intage;
structDatebirthday;
charaddr[30];
};
;3.结构体类型变量的引用
在ANSIC中除了允许具有相同类型的结构变量相互赋值以外,一般对结构体变量的使用,包括赋值、输入、输出、运算等都是通过结构体变量的成员来实现的。
结构体变量成员引用的一般形式:
结构体变量名.成员名
;3.结构体类型变量的引用
例如:boy1.num//第一个学生的学号
boy2.sex//第二个学生的性别
如果结构体变量成员本身又是一个结构体,则必须逐级找到最低级的成员才能使用。
例如:
boy1.birthday.month
;4.结构体类型变量的赋值---按成员逐个赋值
结构体变量的赋值就是给各个成员赋值,可用输入语句或赋值语句来完成。
//结构体成员赋值
boy1.num=10001;
boy1.name=ZhangXin;;例如:把一个学生的信息(包括学号、姓名、性别、地址)放在一个结构体变量中,然后输出这个学生的信息。
解题思路:
自己建立一个结构体类型,包括有关学生信息的各成员
用它定义结构体变量,同时赋以初值
输出该结构体变量的各成员;#includestdio.h
voidmain()
{structStudent
{longintnum;charname[20];
charsex;charaddr[20];
}a={10101,LiLin,’M’,123BeijingRoad};
printf(NO.:%ld\nname:%s\n
sex:%c\naddress:%s\n,
a.num,a.name,a.sex,a.addr);
}
;#includestdio.h
voidmain()
{structStudent
{longintnum;charname[20];
charsex;charaddr[20];
}a={10101,LiLin,’M’,123BeijingRoad};
printf(NO.:%ld\nname:%s\n
sex:%c\naddress:%s\n,
a.num,a.name,a.sex,a.addr);
};#includestdio.h
voidmain()
{structStudent
{longintnum;ch