中国科技大学:电子科学与技术系《C语言程序设计》 第8章 结构体

第8章结构体 白雪飞 baixfaustc. edu.cn 中国科学技术大学电子科学与技术系 Dept of Elec. Sci. Tech, USTC Fal22003
白 雪 飞 baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系 Dept. of Elec. Sci. & Tech., USTC Fall, 2003 第8章 结 构 体

录 结构体 结构体数组 指向结构体的指针 ●定义类型别名 动态存储分配函数 结构体的应用一链表 C语言程序设计-第8章结构体2
C语言程序设计 - 第8章 结构体 2 目 录 ⚫ 结构体 ⚫ 结构体数组 ⚫ 指向结构体的指针 ⚫ 定义类型别名 ⚫ 动态存储分配函数 ⚫ 结构体的应用—链表

结构体( Structure) 结构体概述 结构体类型的声明 结构体变量的定义 结构体变量的初始化 结构体变量的引用 C语言程序设计-第8章结构体
C语言程序设计 - 第8章 结构体 3 结构体 (Structure) ⚫ 结构体概述 ⚫ 结构体类型的声明 ⚫ 结构体变量的定义 ⚫ 结构体变量的初始化 ⚫ 结构体变量的引用

结构体概述 结构体 ■将不同类型的数据组合成一个整体 ■用来表示简单类型无法描述的复杂对象 ■可以用结构体来定义用户自己的数据结构 举例 ■描述学生信息 nun name sex age score addr 12039 Bill Gates M 40 76.5 New York C语言程序设计-第8章结构体4
C语言程序设计 - 第8章 结构体 4 结构体概述 ⚫ 结构体 ◼ 将不同类型的数据组合成一个整体 ◼ 用来表示简单类型无法描述的复杂对象 ◼ 可以用结构体来定义用户自己的数据结构 ⚫ 举例 ◼ 描述学生信息 num name sex age score addr 12039 Bill Gates M 40 76.5 New York

结构体类型的声明 般形式 ■ struct[结构体名] 成员表列 成员表列”形式 类型成员名; 类型成员名; C语言程序设计-第8章结构体5
C语言程序设计 - 第8章 结构体 5 结构体类型的声明 ⚫ 一般形式 ◼ struct [结构体名] { 成员表列 }; ◼ “成员表列”形式 类型 成员名; 类型 成员名; ...

结构体类型声明的说明(1) 声明了一种类型,而不是定义变量 ●结构体名可以没有,但是这样就无法再 次使用该结构体类型了 成员表列中是成员( Member)的定义 成员的定义形式与变量定义相同 成员类型可以是另一结构体类型,但不 可直接或间接递归嵌套 成员表列不可为空,至少要有一个成员 C语言程序设计-第8章结构体6
C语言程序设计 - 第8章 结构体 6 结构体类型声明的说明 (1) ⚫ 声明了一种类型,而不是定义变量 ⚫ 结构体名可以没有,但是这样就无法再 次使用该结构体类型了 ⚫ 成员表列中是成员(Member)的定义 ⚫ 成员的定义形式与变量定义相同 ⚫ 成员类型可以是另一结构体类型,但不 可直接或间接递归嵌套 ⚫ 成员表列不可为空,至少要有一个成员

结构体类型声明的说明(2) 注意{}不表示复合语句,其后有分号 同一结构体的成员不能重名 不同结构体的成员可以重名 结构体成员和其他变量可以重名 结构体类型与其成员或其他变量可重名 struct test[ int testi test 结构体类型名称是 struct结构体名 注意 struct关键字不能省略 C语言程序设计-第8章结构体7
C语言程序设计 - 第8章 结构体 7 结构体类型声明的说明 (2) ⚫ 注意{}不表示复合语句,其后有分号 ⚫ 同一结构体的成员不能重名 ⚫ 不同结构体的成员可以重名 ⚫ 结构体成员和其他变量可以重名 ⚫ 结构体类型与其成员或其他变量可重名 ◼ struct test { int test; } test; ⚫ 结构体类型名称是struct 结构体名, 注意struct关键字不能省略

结构体类型声明的说明(3) 即使两个结构体声明中的成员类型、名 称、顺序都完全一致,它们也是不同的 类型 结构体类型也要“先声明,后使用” 如果结构体类型声明在函数内部,则该 函数之外无法引用此结构体类型 般把结构体类型声明放到文件最前面 ●也可以把结构体类型声明放在头文件里 C语言程序设计-第8章结构体8
C语言程序设计 - 第8章 结构体 8 结构体类型声明的说明 (3) ⚫ 即使两个结构体声明中的成员类型、名 称、顺序都完全一致,它们也是不同的 类型 ⚫ 结构体类型也要“先声明,后使用” ⚫ 如果结构体类型声明在函数内部,则该 函数之外无法引用此结构体类型 ⚫ 一般把结构体类型声明放到文件最前面 ⚫ 也可以把结构体类型声明放在头文件里

结构体类型的声明举例 struct student I unsigned numi /*学号*/ char name[20];/*姓名*/ char sex/ /*性别*/ unsigned agei /*年龄*/ float score/ /*分数*/ char addr[50];/*地址* }; C语言程序设计-第8章结构体9
C语言程序设计 - 第8章 结构体 9 结构体类型的声明举例 struct student { unsigned num; /* 学号 */ char name[20]; /* 姓名 */ char sex; /* 性别 */ unsigned age; /* 年龄 */ float score; /* 分数 */ char addr[50]; /* 地址 */ };

结构体变量的定义(1) 先声明结构体类型再定义变量 struct student unsigned num char name [20]; char sex/ unsigned agei f1oa七 score i char addr [501 struct student stul stu2 i C语言程序设计-第8章结构体10
C语言程序设计 - 第8章 结构体 10 结构体变量的定义 (1) ⚫ 先声明结构体类型再定义变量 struct student { unsigned num; char name[20]; char sex; unsigned age; float score; char addr[50]; }; struct student stu1, stu2;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科技大学:电子科学与技术系《C语言程序设计》 第7章 指针.ppt
- 中国科技大学:电子科学与技术系《C语言程序设计》 第6章 预处理.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第5章 函数.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第4章 数组.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第3章 C语言的基本语句 和程序结构设计.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第2章 数据类型、运算符和表达式.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第1章(1-2) C语言的程序结构.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第一章 C语言程序设计概述.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第10章 文件操作.ppt
- 中国科技大学电子科学与技术系:《C语言程序设计》 第9章 位运算.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第三篇 并行数值算法 第九章 稠密矩阵运算.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第三篇 并行数值算法 第八章 并行数值算法.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第七章 并行算法的一般设计过程.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第六章 并行算法的基本设计技术.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第五章 并行算法的一般设计方法.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第二篇 并行算法的设计 第四章 并行算法的设计基础.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十五章 并行程序设计环境与工具.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十四章 分布存储系统并行编程.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十三章 共享存储系统编程.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)第四篇 并行程序设计 第十二章 并行程库设计基础.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第一章 电子商务概述.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第二章 Internet商务.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第三章 EDI商务.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第四章 企业电子商务应用.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第五章 网上支付与安全交易.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第六章 网络营销.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第七章 电子商务与物流.ppt
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)网站设计(案例:艺海拾贝).ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第一章 概述.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第七章 数组.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第三章 简单VB程序设计.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第九章 文件.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第二章 数据与表达式.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第五章 循环结构.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第八章 过程.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第六章 常用控件与多窗体.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第十一章 VB数据库开发.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第十三章 Activex控件.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第十二章 Visual basic多菜体应用.ppt
- 高等学校计算机教材:《Visual Basic 6.0》课程教学资源(PPT课件讲稿)第十章 高级界面设计.ppt