清华大学C语言程序设计 L9 结构、联合和枚举.pdf
计算机程序设计基础
第9讲 结构、联合和枚举
陈来军(010)
chenlaijun@tsinghua.edu.cn
清华大学电机系
2015.11.18
1
主要内容
C程序设计举例
结构体struct
联合体union
枚举
参考教材: 第9章(暂时不看9.3、9.4节)
<2>
9.1 C程序设计举例
例1: 学籍卡信息
<3>
例2: 求平面上的两点间距离
p1
p2
例3: 复数操作
<6>
例4: 四季风景
<7>
预备知识
1. typedef 关键字
• 用法:
– typedef 现有类型新名字;
– 举例:
• 作用:
– 为现有类型创建一个新的名字
– 用于编写更美观、可读性更强的代码 <8>
2. sizeof关键字
用法:sizeof (变量名或者类型) 返回内存大小
<9>
sizeof关键字
sizeof是一个特殊的编译预处理,不能看成函数、
也不是一元操作符。
• sizeof是在编译阶段求值的。
• int a=0;
printf(“%d”,sizeof(a=3) );
printf(“%d”, a);
• 输出结果是4,0而不是我们期望的4,3 。问题在于
sizeof在编译阶段处理的特性,sizeof不能被编译
成机器码,所以sizeof作用范围内,也就是 ()里
面的内容也不能被编译,而是被替换成类型。
• a=3相当于int,而代码也被替换为
int a=0;
printf(“%d”, 4);
printf(“%d”, 0); <10>
9.2 结构struct
1. 结构的概念(structure )
struct是C语言中的构造类型,是由不同数据类型的数据
组成的集合体。
为处理复杂的数据结构提供了手段。
为函数间传递不同类型的参数提供了便利。
<11>
2. 结构类型的声明
struct {
成员变量说明1;
成员变量说明2;
姓名:张三 学
……