C语言程序设计:自定义数据类型详解
版权申诉
181 浏览量
更新于2024-07-04
收藏 3.25MB PPT 举报
"这份讲义主要讲解了C语言中的用户自定义数据类型,包括结构体、结构体数组、指向结构体的指针、链表、共用体和枚举类型,以及typedef的使用。"
在C语言中,用户可以通过结构体(struct)来创建自定义的数据类型,以满足对复杂数据组织的需求。结构体可以包含不同类型的成员,如整型、字符型、浮点型等。结构体类型的定义允许程序员将多个相关的变量组合在一起,形成一个新的复合数据类型。
1. 结构体类型的定义:通过`struct`关键字定义结构体类型,并指定其成员。例如,可以定义一个包含姓名、年龄和性别的人员信息结构体。
2. 定义结构体变量的方法:可以先声明结构体类型,然后定义变量;也可以同时声明类型并定义变量;直接定义结构体类型变量;结构体的成员还可以是另一个结构体,实现嵌套结构。
3. 结构体变量的引用:结构体作为一个整体不可直接操作,只能通过点运算符`.`来访问其成员。例如,`a.num`表示访问结构体变量`a`的`num`成员。
4. 结构体变量的初始化:结构体可以在定义时进行初始化,通过花括号{}指定每个成员的初始值。
5. 结构体数组:可以定义结构体类型的数组,数组中的每个元素都是一个结构体实例。
6. 指向结构体类型的指针:指针可以指向结构体变量,这样可以通过指针操作结构体的成员。结构体数组的指针可以用于遍历数组。
7. 链表处理:链表是一种动态数据结构,通过指针连接各个节点。可以用指针创建、输出、删除链表。静态链表在定义时分配空间,而动态链表在运行时根据需要分配空间。
8. 共用体(union)类型:共用体内的所有成员共享同一块内存空间,任一时刻只能存储其中一个成员的值。共用体变量不能初始化,也不能作为函数参数。
9. 枚举类型(enum):枚举类型提供了一种为整数常量命名的方式。枚举变量不能直接输入输出,需要转换为对应的整数值。
10. `typedef`定义类型:可以使用`typedef`为已存在的类型创建别名,使得代码更具可读性。例如,`typedef union {...} MYTYPE;`定义了一个名为`MYTYPE`的新类型。
题目解析:
1. 对于`MYTYPE them;`的大小,由于`MYTYPE`是一个联合体,它将占用最大成员的大小,即`double`的8字节,因此输出是8,选择C。
2. 结构体`a`包含一个`int`,一个`char[8]`和一个联合体`data`。`data`中最大的成员是`double`,占8字节,但因为它是联合体,结构体`a`的大小将是`int`的4字节加上`char[8]`的8字节,总计12字节,因此答案是C。
3. 要引用`pup`中的`bb`域,应使用`pup.bb.i`,`pup.bb.ch`或`pup.bb.j`,具体取决于希望访问的成员。
这些知识点是C语言编程中的基础,理解和掌握它们对于编写复杂的C程序至关重要。
2021-09-21 上传
2022-06-18 上传
2021-09-28 上传
2021-10-06 上传
2022-01-06 上传
2021-05-26 上传
2022-06-15 上传
2021-10-10 上传
2023-03-25 上传
matlab大师
- 粉丝: 2783
- 资源: 8万+
最新资源
- BeersManagment-AngularJS-Firebase:使用 AngularJS 和 Firebase 进行 CMS 管理 Beers,三种数据绑定方式
- Correlated
- Flat-Aar-Demo:测试Flat-Aar
- learn-rxjs-operators:Learn RxJS 中文版 (通过清晰的示例来学习 RxJS 5 操作符)
- Excel模板财 务 往 来 对 账 单.zip
- 【地产资料】XX地产 巡区工作表.zip
- flexcpp-old:用于C ++的词法扫描仪生成器
- dataSets
- 佑鸣最新暴雨强度公式 Ver2.08.zip
- Fetching-Data-Group-Project
- JoKenPo:操作系统课程1关于线程
- 香蕉:演示python程序
- Excel模板学生成绩统计表.zip
- 毕业设计&课设--毕业设计选题管理系统.zip
- sqlalchemy-challenge
- Express-file-upload-download:文件上传下载