第11讲结构体共用休和用户定义类型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 结构体变量就是具有特定结构体类型的变量,编译时系统将为 其分配相应的存储空间。可以对其赋值、存取以及运算。
第11讲结构体共用休和用户定义类
2021/3/4

6
结构体类型和结构体变量的定义
例: struct student { int num; char name[20]; char sex; int age; float score; char addr[3 间。
第11讲结构体共用休和用户定义类
2021/3/4

2
结构体类型和结构体变量的定义
应先定义结构体类型,再定义结构体变量
如: struct student { int num;
char name[20]; char sex; int age; float score; char addr[30]; }; struct student stu1,stu2;
结构体中的成员(即 “域”),可以是普通 变量也可以是一个结构 体变量。也就是说结构 体可以嵌套使用。
如或:struct dstautdeent { int mnounmth; ; icnhtadranya; me[20]; isnttruycetard;ate }; { int month; struct isntuddaeyn;t { int intuyme;ar; c}bhiartrhndamy;e[20]; }sstutr;uct date birthday; }stu;
当然也可在定义stu结构时同时说明pstu。
结构指针变量也必须要先赋值后才能使用。赋值是把结 构变量的首地址赋予该指针变量。
要特别注意的是,不能把结构类型名赋予一个指针变量。 如果boy是被说明为stu类型的结构变量,则:
pstu=&boy 是正确的; pstu=&stu 是错误的。
第11讲结构体共用休和用户定义类
全国计算机等级考试 2C课程
第十一讲 结构体、共 用体和用户定义类型
第11讲结构体共用休和用户定义类型
结构体的概念
与数组相比,结构体是一 种功能更为强大的构造类 型数据。结构体类型可以 把不同类型的数据组合成 一个整体。
定义方法:
struct [结构体名]
{ 数据类型1 成员名1; 数据类型2 成员名2;
…… 数据类型n 成员名n; };
说明:
1. struct是定义结构体类型的关键 字;
2. 结构体名、成员名是合法的用户 标识符,结构体名可省略(无名 结构体)
3. 数据类型n 成员名n 可以是基本 类型也可以是其他构造类型;
4. 同一结构体中成员名不可同名; 5. 结构定义语句的分号不可省略; 6. 结构体类型定义只是规定了该结
num name
birthday
month day year
第11讲结构体共用休和用户定义类
2021/3/4

8
结构体变量的初始化
形式一:
struct 结构体名
{
例: 类型标识符 成员名; struct s类tud型en标t 识符 成员名;
{ int num…; ………….
cc};hhaarr
name[20]; sex;
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名; 例 struct student
{………int…n…um. ; }结构体变量c=ha{初r 始na数m据e[2};0];
char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
本例中,结构体类型没有被命名,这称为无名结构体。无名结构体 可以用来直接定义变量,但本类型只能使用一次,后面无法再用。
第11讲结构体共用休和用户定义类
2021/3/4

4
结构指针变量的定义
结构指针变量说明的一般形式为:
struct 结构名 *结构指针变量名
例如,在前面的例题中定义了stu这个结构,如要说明一 个指向stu的指针变量pstu,可写为: struct stu *pstu;
stu1 100102 WangLi
又如: #define STUDENT struct student STUDENT { int num;
char name[20]; char sex; int age; float score; char addr[30]; }; FSTUD2E0 NT 98stu1B,setiuji2n;g
num name
sex age
score
addr

4字节 20字节 1字节 4字节
4字节
30字节

注意:这是结构体定义,只描述
结构的组织形式,student是结构
结构体只有在实例化时才为每个
体类型名,编译时并不为它分配
结构体成员分配内存。
内存
第11讲结构体共用休和用户定义类
2021/3/4

7
结构体类型和结构体变量的定义
isnttruagcte;结构体名 结构体变量={初始数据};
char addr[30];
};
struct student stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
第11讲结构体共用休和用户定义类
2021/3/4

9
结构体变量的初始化
形式二:
stu2 100101 LiXin M 19 90.5 Shanghai
第11讲结构体共用休和用户定义类
2021/3/4

3
结构体类型和结构体变量的定义
也可以直接定义结构体变量。
一般形式:
struct {
类型标识符 成员名; 类型标识符 成员名; …… }变量名表列;
如:struct { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2;
2021/3/4

5
结构体类型和结构体变量的定义
说明
结构体的成员名可以与程序中的变量名相同,二者不 代表同一对象。
需要特别说明的是,结构体类型与结构体变量不是一 个概念
1. 结构体类型是用户自定义的结构型数据类型,它在定义时并不 需要分配内存。你不能给一种结构体类型赋值,当然也不能对 它存取和运算。
相关文档
最新文档