中国高校课件下载中心 》 教学资源 》 大学文库

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

文档信息
资源类别:文库
文档格式:PPTX
文档页数:72
文件大小:266.15KB
团购合买:点击进入团购
内容简介
南京航空航天大学:《程序设计》课程教学课件(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

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档