私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第七章 结构体和共同体

第7章 结构体和共用体
第7章 结构体和共用体

【案例1】案例描述 案例要求输入一名学生的学号、姓名、年龄和身高等信息,然后 再把所有输入的信息一一输出到屏幕上。通过之前的学习,会发现此 案例难度并不大,但和之前不同的是,要求使用结构体的相关知识解 决此问题,接下来请认真阅读案例分析
【案例1】-案例描述 案例要求输入一名学生的学号、姓名、年龄和身高等信息,然后 再把所有输入的信息一一输出到屏幕上。通过之前的学习,会发现此 案例难度并不大,但和之前不同的是,要求使用结构体的相关知识解 决此问题,接下来请认真阅读案例分析

【案例1】-案例分析 学生信息包括学号、姓名、年龄和身高等,处理这些信息时,它们 属于同一个处理对象,却又具有不同的数据类型,比如学号是整型, 姓名是字符串。每当增加、删除或者查询学生信息的时候,需要处理 这个学生的所有数据,因此,有必要把学生的这些数据定义成一个整 体。 虽然数组也能处理一组相关的数据,但是它们数据类型必须是相 同的,对于刚刚这一组不同数据类型的数据,C语言中给出了另一种构 造数据类型一结构体。它与数组最大的区别就在于数组中所有元素的 数据类型都必须相同,而结构体中的各成员类型可以不同。 为了更好地完成此案例,请认真学习结构体的相关知识
【案例1】-案例分析 学生信息包括学号、姓名、年龄和身高等,处理这些信息时,它们 属于同一个处理对象,却又具有不同的数据类型,比如学号是整型, 姓名是字符串。每当增加、删除或者查询学生信息的时候,需要处理 这个学生的所有数据,因此,有必要把学生的这些数据定义成一个整 体。 虽然数组也能处理一组相关的数据,但是它们数据类型必须是相 同的,对于刚刚这一组不同数据类型的数据,C语言中给出了另一种构 造数据类型——结构体。它与数组最大的区别就在于数组中所有元素的 数据类型都必须相同,而结构体中的各成员类型可以不同。 为了更好地完成此案例,请认真学习结构体的相关知识

【案例1)-必备知识 1 结构体类型和结构体变量 2 typedef-一给数据类型起别名
【案例1】-必备知识 1 结构体类型和结构体变量 2 typedef—给数据类型起别名

【案例1】-必备知识 结构体是一种构造数据类型,把不同类型的数据整 合在一起,每一个数据都称为该结构体类型的成员
结构体是一种构造数据类型,把不同类型的数据整 合在一起,每一个数据都称为该结构体类型的成员。 【案例1】-必备知识

【案例1】-必备知识 ·结构体类型定义 在程序设计中,使用结构体类型时,首先要对结构体类型的组成进 行描述,结构体类型的定义方式如下: struct结构体类型名称 数据类型成员名1; 数据类型成员名2 数据类型成员名n;
• 结构体类型定义 − 在程序设计中,使用结构体类型时,首先要对结构体类型的组成进 行描述,结构体类型的定义方式如下: struct 结构体类型名称 { 数据类型 成员名1; 数据类型 成员名2; … 数据类型 成员名n; }; 【案例1】-必备知识

【案例1】-必备知识 。结构体类型的定义 1、结构体类型定义以关键字struct开头; 注意 2、定义好一个结构体类型后,并不分配内存空间: 3、结构体类型定义末尾括号后的分号不可缺少; 4、结构体类型的成员可以是一个结构体变量,但 不能是自身结构体类型的变量
1、结构体类型定义以关键字struct开头; 2、定义好一个结构体类型后,并不分配内存空间; 3、结构体类型定义末尾括号后的分号不可缺少; 4、结构体类型的成员可以是一个结构体变量,但 不能是自身结构体类型的变量。 • 结构体类型的定义 【案例1】-必备知识

【案例1】必备知识 ·结构体变量的定义 一定义了结构体类型,它相当于一个模型,其中并无具体数据,系统也不 会为它分配实际的内存空间。为了能在程序中使用结构体类型的数据, 应该定义结构体类型的变量,并在其中存放具体的数据。 1先定义结构体类型,再定义结构体变量 2在定义结构体类型的同时定义结构体变量 3直接定义结构体变量
• 结构体变量的定义 − 定义了结构体类型,它相当于一个模型,其中并无具体数据,系统也不 会为它分配实际的内存空间。为了能在程序中使用结构体类型的数据, 应该定义结构体类型的变量,并在其中存放具体的数据。 1.先定义结构体类型,再定义结构体变量 2.在定义结构体类型的同时定义结构体变量 3.直接定义结构体变量 【案例1】-必备知识

【案例1】-必备知识 。结构体变量的定义 结构体类型是用户自定义的一种数据类型,它 注意 同前面所介绍的简单数据类型一样,在编译时 对结构体类型不分配空间。只有用它来定义某 个变量时,才会为该结构体变量分配结构体类 型所需大小的内存单元
结构体类型是用户自定义的一种数据类型,它 同前面所介绍的简单数据类型一样,在编译时 对结构体类型不分配空间。只有用它来定义某 个变量时,才会为该结构体变量分配结构体类 型所需大小的内存单元。 • 结构体变量的定义 【案例1】-必备知识

【案例1】-必备知识 ·结构体变量的内存分配 一结构体变量占据的内存大小是按照字节对齐的机制来分配的。通常情况 下,字节对齐满足两个原则。 1.结构体的每个成员变量相对于结构体首地址的偏移量,是该成 员变量的基本数据类型(不包括结构体、数组等)大小的整数 倍,如果不够,编译器会在成员之间加上填充字节。 2.结构体的总大小为结构体最宽基本类型成员大小的整数倍,如 果不够,编译器会在最末一个成员之后加上填充字节
• 结构体变量的内存分配 − 结构体变量占据的内存大小是按照字节对齐的机制来分配的。通常情况 下,字节对齐满足两个原则。 1. 结构体的每个成员变量相对于结构体首地址的偏移量,是该成 员变量的基本数据类型(不包括结构体、数组等)大小的整数 倍,如果不够,编译器会在成员之间加上填充字节。 2. 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如 果不够,编译器会在最末一个成员之后加上填充字节。 【案例1】-必备知识
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第二章 数据类型与运算符.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第三章 结构化程序设计.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第一章 初识C语言(负责人:周鹏梅).ppt
- 私立华联学院:《C语言程序设计》课程教学资源(教案讲义)课程标准(适用专业:物联网应用技术).pdf
- 私立华联学院:《C语言程序设计》课程教学资源(教案讲义)应用案例.pdf
- 私立华联学院:《C语言程序设计》课程教学资源(教案讲义)教学大纲.pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)10_Simply-Typed Lambda Calculus.pptx
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)Separation Logic(3/3).ppt
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)Separation Logic(2/3).ppt
- 《程序设计语言的形式语义》课程教学资源(文献资料)An Introduction to Separation Logic(Preliminary Draft).pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)09_Shared-Variable Concurrency.pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)Separation Logic(1/3).ppt
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)07_Axiomatic Semantics and Hoare Logic.pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)06_Denotational Semantics.pdf
- 《程序设计语言的形式语义》课程教学资源(文献资料)Lecture Notes on the Lambda Calculus.pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)05_Operational Semantics.pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)04_Lambda Calculus.pptx
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)03_Math.pdf
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)02_CoqOverview.pptx
- 南京大学:《程序设计语言的形式语义》课程教学资源(课件讲稿)01_Introduction(主讲:冯新宇)Formal Semantics of Programming Languages.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第五章 函数.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第八章 文件.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第六章 指针.ppt
- 私立华联学院:《C语言程序设计》课程电子教案(PPT课件)第四章 数组.ppt
- 私立华联学院:《Python语言程序设计》课程教学资源(教案讲义)课程标准(适用专业:软件技术).pdf
- 私立华联学院:《Python语言程序设计》课程教学资源(教案讲义)课程教学设计(负责人:尹菡).pdf
- 《Python语言程序设计》课程教学资源(拓展资源)Python练习实例(Python 100例).pdf
- 《Python语言程序设计》课程教学资源(拓展资源)零基础Python上手编程(2020版).pdf
- 私立华联学院:《Python语言程序设计》课程教学资源(实习实验)Python编程基础实验指导手册.pdf
- 《Python语言程序设计》课程教学资源(教案讲义)Python学习参考教材(共十一单元).pdf
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第1单元 初识Python的世界(负责人:尹菡).pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第2单元 Python基础知识.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第3单元 Python字符串输入输出.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第4单元 Python的组合数据类型.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第5单元 Python程序的流程控制.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第10单元 Python异常处理.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第11单元 Python的模块使用与程序打包.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第12单元 实战——用Python玩微信.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第6单元 用函数实现代码复用.pptx
- 私立华联学院:《Python语言程序设计》课程教学资源(PPT课件)第7单元 正则表达式.pptx