结构体共用体和枚举类型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类型一样。定义了结构体以后,就可以用它定义变量。 定义结构体变量,一般有三种方法:
(1) 先定义结构体类型,再定义变量,例如: struct stdtp { int num; char name[10]; float score; }; struct stdtp s1, s2;
第10章 结构体、共用体和枚举类型
第10章 结构体、共用体和枚举类型
struct stdtp { int num; char name[10]; float score; } s;
第10章 结构体、共用体和枚举类型
要输入一个学生的信息存放在变量s中,可以使用语句: scanf("%d %s %f", &s.num, s.name, &s.score); 要使学生的成绩增加5%,可以使用语句: s.score=s.score*(1+0.05); 要输出学生的信息,可以使用语句: printf("num:%d\nname:%s\nscore:%f\n", s.num, s.name,
10.3.2 结构体数组的初始化 和其他类型的数组一样,对结构体数组也可以初
第10章 结构体、共用体和枚举类型
10.3 结 构 体 数 组
10.3.1 结构体数组的定义 结构体数组的每一个元素,都是结构体类型数据,
例如: Βιβλιοθήκη Baidutruct stdtp { int num; char name[10]; float score; } stu[3];
第10章 结构体、共用体和枚举类型
第10章 结构体、共用体和枚举类型
10.1 结构体类型与结构体变量的定义
10.1.1 结构体的类型定义 结构体是一种数据类型,它把互相联系的不同类
型的数据组合成一个整体。结构体类型定义的一般格 式为
struct 结构体类型名 { 成员说明表; }; /*注意:此处的分号(;)不能省略*/
第10章 结构体、共用体和枚举类型
(2) 定义类型的同时定义变量,例如: struct stdtp { int num; char name[10]; float score; } s1, s2;
第10章 结构体、共用体和枚举类型
(3) 直接定义变量(省略结构体类型名),例如 struct { int num; char name[10]; float score; } s1, s2; 结构体变量中的各个成员,在内存中顺序存放。 结构体变量所占的存储空间,等于各个成员所占存储 空间的和。例如,在16位操作系统下,变量s1在内存 中占2+10+4=16个字节,如图10-1所示。
第10章 结构体、共用体和枚举类型
struct scoretp { float chinese, english, math; }; struct stdtp { int num; char name[10]; struct scoretp score; };
第10章 结构体、共用体和枚举类型
10.1.2 结构体变量的定义 结构体是一种数据类型,就像int、char、flaot是数据
其中,成员说明表的一般格式为 数据类型 数据项表; 例如: struct stdtp { int num; char name[10]; float score; };
第10章 结构体、共用体和枚举类型
上面的例子,定义了一种新的数据类型struct stdtp, 这种数据类型包含有num、name、score三个成员,类型 分别为整型、一维字符数组、单精度实型,他们可以用 来表示学生的学号、姓名和成绩。结构体的成员,既可 以是基本数据类型,也可以是数组,甚至可以是另一个 已经定义的结构体类型。例如,如果一个学生有语文、 英语、数学三门功课,则上面的定义可修改为
第10章 结构体、共用体和枚举类型
要给学生的英语成绩增加5%,可以使用语句: s.score.english=s.score.english*(1+0.05);
注意:属于同一种结构体类型的结构体变量,在相 互赋值时,可以作为整体来引用,例如:
struct stdtp { int num; char name[10]; float score; } s1,s2; s1=s2; /*这条语句把变量s2各成员的值赋给变量s1的 相应成员*/
第10章 结构体、共用体和枚举类型
10.2.2 结构体变量的初始化 对结构体变量初始化,就是给结构体变量的各个
成员赋初值,例如: struct stdtp { int num; char name[10]; float score; } s={1, "Wang", 89.5};
第10章 结构体、共用体和枚举类型
第10章 结构体、共用体和枚举类型
num s1
name
图10-1 结构体变量
score
第10章 结构体、共用体和枚举类型
10.2 结构体变量的引用与初始化
10.2.1 结构体变量的引用 一般情况下,不能将一个结构体变量作为整体来
引用,只能引用其中的成员。引用结构体变量成员的 方法是:
结构体变量名.成员名 其中,“.”是“成员运算符”。例如,有定义语句:
s.score);
第10章 结构体、共用体和枚举类型
当成员的类型是结构体类型时,应一级一级地引用 成员。例如,有定义语句:
struct scoretp { float chinese, english, math; }; struct stdtp { int num; char name[10]; struct scoretp score; } s;
初始化后,变量s的num成员的值是1;name成员 中存放字符串“Wang”;score成员的值是89.5。如果 结构体变量的成员的类型是结构体类型,则初始化的 形式为
第10章 结构体、共用体和枚举类型
struct scoretp { float chinese, english, math; }; struct stdtp { int num; char name[10]; struct scoretp score; } s={1, "Wang", {90, 89.5, 85}};
相关文档
最新文档