结构体、共同体以及用户定义类型.ppt
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
结构体、共同体和用户定义类型 本章主要讲述结构体、共同体和用户定义类型的概念、定义和应用。结构体是一种复杂的数据类型,允许用户自定义数据类型的结构。共同体是指共享同一个内存单元的多个变量。 一、结构体类型 结构体类型是由多个变量组成的复杂数据类型。它可以包含多种类型的变量,包括基本类型、数组、指针、结构体等。结构体类型的定义格式为: ```c struct 结构体标识符名 { 类型名1 结构体成员名表1; 类型名2 结构体成员名表2; … 类型名n 结构体成员名表n; }; ``` 例如,定义一个学生结构体类型: ```c struct student { char name[12]; char sex; struct date birthday; float sc[4]; }; ``` 其中,`struct`关键字用于定义结构体类型,`student`是结构体类型的标识符名,`name`、`sex`、`birthday`、`sc`是结构体成员名表。 二、结构体类型变量的定义 结构体类型变量的定义可以使用三种方式: 1. 紧跟在结构体类型定义之后: ```c struct student { char name[12]; char sex; struct date birthday; float sc[4]; } std, pers[3], *pstd; ``` 2. 无名结构体类型定义: ```c struct { char name[12]; char sex; struct date birthday; float sc[4]; } std, pers[3], *pstd; ``` 3. 使用typedef关键字: ```c typedef struct { char name[12]; char sex; struct date birthday; float sc[4]; } STREC; STREC std, pers[3], *pstd; ``` 三、结构体变量的赋初值 结构体变量的赋初值可以使用大括号括起来的初始化列表。例如: ```c struct student std = {"Li Ming", 'M', 1962, 5, 10, 88, 76, 85.5, 90}; ``` 四、结构体数组的赋初值 结构体数组的赋初值可以使用大括号括起来的初始化列表。例如: ```c struct bookcard bk[3] = {{"NO.1", 35.5}, {"NO.2", 25.0}, {"NO.3", 55.7}}; ``` 五、结构体类型变量的引用 结构体类型变量的引用可以使用点运算符(.)或箭头运算符(->)。例如: ```c struct student std; std.name = "Li Ming"; std.sex = 'M'; struct student *ps; ps = &std; ps->name = "Li Ming"; ps->sex = 'M'; ``` 六、结构体类型变量的数据传递 结构体类型变量可以作为函数参数传递,可以传递结构体变量的单个成员、整个结构体变量或结构体变量的地址。例如: ```c void getdata(ST *p) { scanf("%s%d", p->s, &p->t); } int main() { ST a; getdata(&a); printf("%s, %d\n", a.s, a.t); return 0; } ``` 七、利用结构体变量构成链表 结构体变量可以用于构成链表,链表是一种常用的、能够实现动态存储分配的数据结构。链表由头指针变量、数据域和指针域组成。例如: ```c struct node { int data; struct node *next; }; ``` 链表的应用非常广泛,例如可以用于实现栈、队列、树等数据结构。
- 粉丝: 0
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2018级计算机系数据库实验三.zip学习资料
- JS省市区三级联动效果、JS随机生成验证码、个税计算器.zip
- 跨平台防流式 ESP 破解程序,适用于《反恐精英全球攻势》,使用现代 C++ 编写 渲染和 GUI 由 Dear ImGui + FreeType 提供支持 .zip
- 跨平台游戏引擎(Windows、Linux、Mac、Android),具有物理、线程纹理加载、多后端(OpenGL、DirectX 等)和现代流音频 .zip
- 跨平台、与图形 API 无关的“自带引擎,框架”风格渲染库 .zip
- 2024数证杯apk部分验材-1
- 资产导入器和查看器旨在以 VR 帧速率对裸体人物进行照片般逼真的渲染 .zip
- 象形文字 3 渲染引擎.zip
- 该项目的主要目标是生成和可视化使用体素构建的地形 为了进行性能和实施比较,我们使用了不同的方法和计算技术来实现 .zip
- 大三年级2021年秋《计算机体系结构》课程实验部分.zip