南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)07 记录类型

记录类型版权所有@陈暂保留所有权利陈哲版权所有陈哲保留所有权利
版 权 所 有 © 陈 哲 保 留 所 有 权 利 版权所有© 陈哲 保留所有权利 记录类型 陈哲

>结构体>结构体变量地址和动态结构体>结构体变量地址作为函数参数>结构体数组>结构体数组元素地址>结构体数组元素地址作为函数参数>链表版权所有@陈暂保留所有权利>共用体类型定义typedef版权所有陈哲保留所有权利
版 权 所 有 © 陈 哲 保 留 所 有 权 利 版权所有© 陈哲 保留所有权利 2 ➢结构体 ➢结构体变量地址和动态结构体 ➢结构体变量地址作为函数参数 ➢结构体数组 ➢结构体数组元素地址 ➢结构体数组元素地址作为函数参数 ➢链表 ➢共用体 ➢类型定义typedef

结构体>现实中一个实体可能包含很多数据。例如,一个学生具有学号、姓名、性别、年龄、成绩、家庭地址等数据。如果单独定义这些变量,比较分散、难于维护>可以将这些数据聚合成为一个类型。例如,定义一个学生类型,包括学号、姓版权所有@陈暂保留所有权利名、性别、年龄、成绩、家庭地址等项这样便于集中记录一个学生的信息3
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢现实中一个实体可能包含很多数据。例 如,一个学生具有学号、姓名、性别、 年龄、成绩、家庭地址等数据。如果单 独定义这些变量,比较分散、难于维护。 ➢可以将这些数据聚合成为一个类型。例 如,定义一个学生类型,包括学号、姓 名、性别、年龄、成绩、家庭地址等项。 这样便于集中记录一个学生的信息。 结构体 3

>结构体类型定义的语法struct Studentstruct 结构体名【成员表列;int num;char name[20]结构体名是一个标识符。char sex;成员表列包括多个成员变量int age;量名),用分号隔开。float score;>语义:告诉编译器一个新char addr[301:成员变量,该类型的大小版权所有@陈暂保留所有权利变量的大小之和。addrnumnamesexscoreage4
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢结构体类型定义的语法: struct 结构体名 { 成员表列 }; ◦结构体名是一个标识符。 ◦成员表列包括多个成员变量定义(类型名和变 量名),用分号隔开。 ➢语义:告诉编译器一个新的类型和它的 成员变量,该类型的大小等于所有成员 变量的大小之和。 4 struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; num name sex age score addr

>结构体变量定义的语法struct 结构体名变量名;>语义:在内存中为变量分配内存空间,大小为结构体类型的大小。>例如:struct Studentstudent1, student2结构体类型名结构体变量名版权所有陈暂保留所有权利student119M90.510001Zhang XinShanghaistudent2F209810002Wang LiBeijing
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢结构体变量定义的语法: struct 结构体名 变量名; ➢语义:在内存中为变量分配内存空间, 大小为结构体类型的大小。 ➢例如: struct Student student1, student2; 5 结构体类型名 结构体变量名 10001 Zhang Xin M 19 90.5 Shanghai student1 10002 Wang Li F 20 98 Beijing student2

>结构体的成员变量可以是另一个结构体类型的变量struct Student {struct Dateint num;char name[20] :int year;char sex;int month;int age;int day;struct Date birthday;7:char addr[30];版权所有@陈哲birthday5addrnumnamesexagedaymonthyear6
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢结构体的成员变量可以是另一个结构体 类型的变量。 struct Date { int year; int month; int day; }; 6 num name sex age birthday addr year month day struct Student { int num; char name[20]; char sex; int age; struct Date birthday; char addr[30]; };

>可以在声明结构体类型的同时定义变量语法:struct「结构体名]【成员表列7变量名表列;>例如:struct Student {int num;可以省略char name[20l;char sex;版权所有@陈哲保留所有权利int age;float score;char addr[30l; studentl, student2;
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢可以在声明结构体类型的同时定义变量。 语法: struct [结构体名] { 成员表列 } 变量名表列; ➢例如: struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1, student2; 7 可以省略

>结构体变量的初始化struct Student1long int num;char nam[20] ;char sexchar addr[20:10101,"Li Si"l'M',"1 Nanjing Road"l :a版权所有陈暂保留所有权利8
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢结构体变量的初始化。 struct Student { long int num; char name[20]; char sex; char addr[20]; } a = { 10101,"Li Si",'M',"1 Nanjing Road"}; 8

>结构体变量的访问:访问成员变量的语法:结构体变量名.成员变量名。struct Student a, b;//错!不能整体输入结构体变量的成员变量的值scanf("%ld,%s,%c,%s|n",&a) ;scanf("%ld",&a.num);/通过成员变量的地址输入scanf("%s".&a.name);//通过成员变量的地址输入a.num=10010;//成员变量相当于普通变量b.num = a.num + 1;b=a://同类型的结构体变量可互相赋值版权所有@陈暂保留所有权利printf("%p",&a)://输出结构体变量的地址//错!不能整体输出结构体变量的所有成员printf("%ld, %s.s,%c,%sln".printf("num:%ld/nname:%s/nsex:%c|naddress:%s)n"a.num, a.name, a. sex, a.addr):9
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢结构体变量的访问:访问成员变量的语 法:结构体变量名.成员变量名。 struct Student a, b; //错!不能整体输入结构体变量的成员变量的值 scanf("%ld,%s,%c,%s\n", &a); scanf("%ld", &a.num); // 通过成员变量的地址输入 scanf("%s", &a.name); // 通过成员变量的地址输入 a.num = 10010; // 成员变量相当于普通变量 b.num = a.num + 1; b = a; // 同类型的结构体变量可互相赋值 printf("%p", &a); // 输出结构体变量的地址 // 错!不能整体输出结构体变量的所有成员 printf("%ld, %s, %c, %s\n", a); printf("num:%ld\nname:%s\nsex:%c\naddress:%s\n", a.num, a.name, a.sex, a.addr); 9

>嵌套结构体变量的访问:#include #include int mainO {struct Dateint year; int month; int day;1 :struct Student {int num; char name[20]:struct Date birthday;} a,b;strcpy(a. name, "Li Si");a.num = 1:版权所有@陈保留所有权利a.birthday.year = 2000;a.birthday.month = 12;b.birthday = a.birthday;return O;10
版权所有© 陈哲保留所有权利 ➢嵌套结构体变量的访问: #include #include int main() { struct Date { int year; int month; int day; }; struct Student { int num; char name[20]; struct Date birthday; } a, b; a.num = 1; strcpy(a.name, "Li Si"); a.birthday.year = 2000; a.birthday.month = 12; b.birthday = a.birthday; return 0; } 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)06 数组.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)05 函数.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)04 控制流.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)03 运算符和表达式.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)02 常量和变量.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)01 计算机和程序.pptx
- 《程序设计》课程教学资源(实验指导)C++语言习题集(南京航空航天大学:陈哲).pdf
- 《程序设计》课程教学资源(书籍文献)Google开源项目风格指南(中文版).pdf
- 长春大学:旅游学院:《Visual FoxPro程序设计》课程教学资源(授课教案,共七章).pdf
- 《计算机导论》课程教学资源(授课教案,教材讲义,共六章).pdf
- 江苏大学:RISC-V CPU设计实验(讲义).pdf
- 黄河水利职业技术大学:《电商网站建设与优化》课程思政教案(教学设计)PHP动态网站开发.pdf
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第09章 SPI与I2C串行总线.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第08章 USART串行通信.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第07章 模数转换器(ADC).ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第06章 定时器.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第05章 通用输入输出接口GPIO.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第04章 中断系统.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 STM32微控制器的开发平台.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 嵌入式开发环境的搭建.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)08 文件.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)09 编译预处理和多文件项目.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 1-C++程序设计基础.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 2-文件操作.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 3-类的基础部分.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 4-类的高级部分.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 5-继承多态和虚函数.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 6-异常处理.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 7-模板.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 8-标准模板库STL.ppt
- 揭阳职业技术学院:《Linux操作系统》课程教学资源(实验教案,共十八个).pdf
- 揭阳职业技术学院:《计算机应用基础》课程授课教案.pdf
- 揭阳职业技术学院:《物联网》课程授课教案.pdf
- 揭阳职业技术学院:《程序设计基础》课程授课教案.pdf
- 揭阳职业技术学院:《办公自动化》课程授课教案.pdf
- 揭阳职业技术学院:《图像处理》课程授课教案.pdf
- 揭阳职业技术学院:《计算机应用基础》课程授课教案.pdf
- 揭阳职业技术学院:《Photoshop制图》课程授课教案.pdf
- 清华大学:《计算机图形学基础》课程教学大纲 Fundamental of Computer graphics(负责人:胡事民).pdf
- 清华大学:《计算机图形学基础》课程教学资源(授课教案)图形学简介.pdf
