中国科学技术大学:《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章 C语言的程序结构.ppt
- 中国科学技术大学:《C语言》第10章 文件操作.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第3章 赋值与输入输出.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第2章 程序设计基础.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第1章 认识 Visual Basic.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第10章 电子讲稿.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第9章 程序调试与错误处理.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第8章 数据文件.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第7章 过程.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第6章 数组.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第5章 循环结构设计.ppt
- 《VB程序设计》课程教学资源(PPT课件讲稿)第4章 选择结构设计.ppt
- 《计算机网络应用基础》第8章 Intranet与电子商务.ppt
- 山东大学齐鲁软件学院:《计算机网络课程设计实验指导书》讲义.pdf
- 中国科学技术大学:《C语言》第9章 位运算.ppt
- 南京工业大学:《计算机编译原理》(第二版) 第一章 总论.ppt
- 南京工业大学:《计算机编译原理》(第二版) 第三章 词法分析.ppt
- 南京工业大学:《计算机编译原理》(第二版) 第四章 语法分析——-自顶向下分析技术.ppt
- 南京工业大学:《计算机编译原理》(第二版) 第五章 语法分析——-自底向上分析技术.ppt
- 南京工业大学:《计算机编译原理》(第二版) 第六章 语义分析与目标代码生成.ppt
- 南京工业大学:《计算机编译原理》(第二版) 第八章 代码优化.ppt
- 《ASP实用技术》第8章 网络数据库应用系统集成.ppt
- 《ASP实用技术》第2章 超文本标记语言(HTML).ppt
- 《ASP实用技术》第3章 客户端脚本语言.ppt
- 《ASP实用技术》第4章 ASP技术基础.ppt
- 《ASP实用技术》第5章 ASP对象.ppt
- 《ASP实用技术》第6章 SQL与AD0组件模型.ppt
- 《ASP实用技术》第7章 ASP中的 Activex组件.ppt
- 《ASP实用技术》第1章 网络数据库应用系统概述.ppt
- 《C语言程序设计》课程教学资源:第一章 概述.ppt
- 《C语言程序设计》课程教学资源:第二章 数据类型.ppt
- 《C语言程序设计》课程教学资源:第三章 顺序程序设计.ppt
- 《C语言程序设计》课程教学资源:第四章 选择结构.ppt
- 《C语言程序设计》课程教学资源:第五章 选择结构.ppt