贵州师范学院:《高级语言程序设计 Advanced Programming》课程教学资源(PPT课件讲稿)第9章 结构体

第9章结构体 Advanced Programming
Advanced Programming 第9章 结构体

目录 √定义结构体类型变量的方法 结构体变量的引用 √结构体变量的初始化 √结构体数组 指向结构体类型数据的指钋 用指针处理链表 用 typedef定义类型 Advanced Programming
Advanced Programming 目 录 ✓ 定义结构体类型变量的方法 ✓ 结构体变量的引用 ✓ 结构体变量的初始化 ✓ 结构体数组 ✓ 指向结构体类型数据的指针 ✓ 用指针处理链表 ✓ 用typedef定义类型

本章学习目标 ◆理解结构体的概念和它对于编程的重要性 ◆理解定义结构体类型和定义结构体变量的 区别; ◆能够用“.”和“>”分量运算符操作结构体 变量和指向结构体的指针变量 ◆能够定义并使用结构体数组; ◆了解用 Typedef定义数据类型 Advanced Programming
Advanced Programming 本章学习目标 ◆理解结构体的概念和它对于编程的重要性; ◆理解定义结构体类型和定义结构体变量的 区别; ◆能够用“ . ”和“->”分量运算符操作结构体 变量和指向结构体的指针变量; ◆能够定义并使用结构体数组; ◆了解用typedef定义数据类型

§91定义和使用结构体变量 有些问题仅用基本类型和数组来描述,无法反映其内 在联系,如学生情况: num name seX age score addr 11001 Zhang xin m 1996. 5 Shang hai 12001 Wang 20 98.5 Bei jing 由不同类型数据组成的这种数据结构称为结构体 (structure Advanced Programming
Advanced Programming § 9.1 定义和使用结构体变量 有些问题仅用基本类型和数组来描述,无法反映其内 在联系,如学生情况: num name sex age score addr 11001 Zhang xin m 19 96. 5 Shang hai 12001 Wang li f 20 98. 5 Bei jing 由不同类型数据组成的这种数据结构称为结构体 (structure)

1、结构体 ◇结构体是一种构造数据类型。 ◆定义:由相互关联的不同数据类型的数据组成的 有机整体。 B≌行的散据结构提供7 注意:这只是声明种数同类理的合法标识符 据类型并没有定义变量。 可省:无名结构体 ★结构体类型定义 struct结构体名 类型标识符成员名1 struct是关键字,类型标识符成员名2; 不能省略 成员类型可以是 不能省略 x0基本型或构造型
Advanced Programming 1、结构体 ❖结构体是一种构造数据类型。 ❖定义:由相互关联的不同数据类型的数据组成的 有机整体。 ❖用途:为处理复杂的数据结构提供了手段。 为函数间传递不同类型的参数提供了便利。 ❖关键字:struct 结构体类型定义 struct [结构体名] { 类型标识符 成员名1; 类型标识符 成员名2; ……………. }; 成员类型可以是 基本型或构造型 struct是关键字, 不能省略 合法标识符 可省:无名结构体 ;不能省略 注意:这只是声明一种数 据类型并没有定义变量

num 2字节 struct student f int num; name 20字节 char name 201; sex 1字节 char sex; age 2字节 int age: float score, scores 4字节 char addr 301; addr 30字节 ④结构体类型定义仅描述结构体的组成不分配内存空间 Advanced Programming
Advanced Programming struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; name num sex age score addr 2字节 2字节 20字节 1字节 4字节 30字节 … ….. 结构体类型定义仅描述结构体的组成,不分配内存空间

2、定义结构体类型变量的方法(3种 (1)先声明结构体类型,再定义结构体变量 定义结构体 struct结构体名 struct student 类型 类型标识符成员名; f int num; 类型标识符成员名; char name 201; char sex: Int age; struct结构体名变量名表列 float score; char addr30li struct student stul stu2 ■口■■■ 定义结构体变量 Advanced Programming
Advanced Programming 2、定义结构体类型变量的方法(3种) (1)先声明结构体类型,再定义结构体变量 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student stu1,stu2; 定义结构体 类型 定义结构体变量 struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 变量名表列;

(2)声明结构体类型的同时定义结构体变量 struct student struct结构体名 f int num; 类型标识符成员名 char name 201 类型标识符成员名 char sex: 00。 nt age 变量名表列 float score char addr 301; 定义结构体类型 stul, stu2 i ④只有在定义了结构 定义结构体变量 体变量后系统才为 其分配内存。 Advanced Programming
Advanced Programming (2)声明结构体类型的同时定义结构体变量 只有在定义了结构 体变量后系统才为 其分配内存。 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; } stu1,stu2 ; 定义结构体类型 定义结构体变量 struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列;

(3)直接定义结构体类型变量 struct struct int num: 类型标识符成员名 char name 201; 类型标识符成员名 char sex: nt age 变量名表列; fle loat scores char addr 301; 3 stul, stu2 用无名结构体直接 定义变量只能一次 Advanced Programming
Advanced Programming (3)直接定义结构体类型变量 用无名结构体直接 定义变量只能一次 struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列; struct { int num; char name[20]; char sex; int age; float score; char addr[30]; } stu1,stu2 ;

◆说明 ◇结构体类型与结构体变量概念不同 ●类型不分配内存; 变量分配内存 ●类型不能赋值、存取、运算;变量:可以 ◇结构体变量中的成员可单独使用,方法如普通变量 ◇结构体可嵌套 struct student i int num char name 201; birthday num name struct date month day year i int month printf ("od", sizeof(stu)); Int day; 结果:28 int year, birthdays
Advanced Programming ◆说明 ❖结构体类型与结构体变量概念不同 ⚫类型:不分配内存; 变量:分配内存 ⚫类型:不能赋值、存取、运算; 变量:可以 ❖结构体变量中的成员可单独使用,方法如普通变量; ❖结构体可嵌套 struct date { int month; int day; int year; }; struct student { int num; char name[20]; struct date birthday; }stu; num name birthday month day year printf ("%d ", sizeof (stu) ); struct student { int num; char name[20]; struct date { int month; int day; int year; }birthday; }stu; 结果:28
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- A New Approach for Accurate Modelling of Medium Access Control(MAC)Protocols.ppt
- 西安电子科技大学:人工神经网络(PPT讲稿)Artificial Neural Networks(Introduction).ppt
- 《数据结构和编程设计》课程教学资源(PPT课件讲稿)Chapter 1 Programming Principles.ppt
- 《微机原理》课程教学资源(PPT课件讲稿)第三章 寻址方式与指令系统.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第九章 排序 Sort.ppt
- 中国科学技术大学:《数据结构》课程教学资源(PPT课件)第八章 查找表.pps
- 丽水职业技术学院:《电子商务实训》课程教学资源(PPT课件讲稿)电子商务交易模式之“B2C”.ppt
- 河南中医药大学(河南中医学院):《计算机文化》课程教学资源(PPT课件讲稿)第八章 数字多媒体.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第7章 运输层.ppt
- 《自然语言处理》课程教学资源(PPT课件讲稿)语言模型.ppt
- 中国科学技术大学:《计算机文化基础》课程教学资源(PPT课件讲稿,共四章,李金龙).ppt
- 清华大学:《计算机导论》课程电子教案(PPT教学课件)第5章 程序设计知识.ppt
- 北京建筑大学:《计算机图形学》课程教学资源(PPT课件讲稿)第一章 绪论(吕书强).ppt
- 理论计算机科学(PPT专题讲稿)Topics in Theoretical Computer Science(Linear Programming).pptx
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第9章 文件操作.ppt
- 香港科技大学:Recent Development of Heterogeneous Information Networks - From Meta-paths to Meta-graphs.pptx
- 西安培华学院:《计算机应用基础》课程教学资源(PPT课件讲稿)第1章 信息技术与计算机基础知识.ppt
- 同济大学:FWA for Noisy Optimization Problems(张军旗).pptx
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 词法分析.ppt
- 电子科技大学:《计算机操作系统》课程教学资源(PPT课件)第一章 操作系统引论.ppt
- 《大型机高级系统管理技术》课程教学资源(PPT课件讲稿)第3章 作业控制语言.ppt
- 厦门大学:《大数据技术原理与应用》课程教学资源(PPT课件讲稿)第九章 图计算.ppt
- 《微机原理笔记》课程教学资源(PPT课件讲稿)第6章 输入输出和中断技术.ppt
- 香港科技大学:Introduction to Software Defined Network(SDN).pptx
- 《高级语言程序设计 Advanced Programming》课程教学资源(PPT课件讲稿)第5章 循环结构程序设计.ppt
- 中国科学技术大学:《计算机科学导论》课程教学资源(PPT课件讲稿)第五讲 经典计算的计算模型(主讲:陈意云).pptx
- 华中师范大学:智能与分布计算(PPT课件讲稿)语义网与本体 Semantic Web & Ontology(Introduction).ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第六章 数字签名算法.pptx
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 8 网络安全 Network Security.ppt
- 武昌理工学院:《操作系统原理》课程教学资源(PPT课件)第一章 操作系统概述(主讲:温静).pptx
- Data Mining and Model Choice in Supervised Learning.ppt
- 上海交通大学:《软件工程导论》课程教学资源(PPT课件讲稿)第十三讲 软件项目中的人员管理.ppt
- 航空航天(PPT课件讲稿)Mechanics——Particle Motion.ppt
- 《网络编程实用教程》教学资源(PPT课件讲稿)第4章 MFC编程.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)贪心算法.pptx
- 《计算机算法基础》课程教学资源(PPT课件讲稿)分枝-限界法.ppt
- 《计算机系统和系统结构》课程教学资源(PPT课件讲稿)第四章 流水线技术.ppt
- 四川大学:《计算机操作系统 Operating System Principles》课程教学资源(PPT课件讲稿)第6章 存储器管理.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第二章 微型计算机基础知识.ppt
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 05 Object-Oriented Programming.ppt