当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《C语言程序设计》课程教学资源:第10章 结构与链表

资源类别:文库,文档格式:PPT,文档页数:35,文件大小:115.5KB,团购合买
为将不同数据类型、但相互关联的一组数据,组合成一个有机整体使用,C语言提供一种称为“结构”的数据结构 10.1结构类型与结构变量的定义 10.2结构变量的引用与初始化 10.3结构数组 10.4指向结构类型数据的指针 10.5链表处理结构指针的应用 10.6共用型和枚举型 10.7定义已有类型的别名
点击下载完整版文档(PPT)

第10章结构与链表 为将不同数据类型、但相互关联的一组数据,组合 成一个有机整体使用,C语言提供一种称为“结构”的 数据结构 0.1结构类型与结构变量的定义 102结构变量的引用与初始化 10.3结构数组 104指向结构类型数据的指针 10.5链表处理—结构指针的应用 106共用型和枚举型 07定义已有类型的别名 IReturn

第10章 结构与链表 为将不同数据类型、但相互关联的一组数据,组合 成一个有机整体使用,C语言提供一种称为“结构”的 数据结构。 10.1 结构类型与结构变量的定义 10.2 结构变量的引用与初始化 10.3 结构数组 10.4 指向结构类型数据的指针 10.5 链表处理──结构指针的应用 10.6 共用型和枚举型 10.7 定义已有类型的别名 [Return]

10.1结构类型与结构变量的定义 C语言中的结构类型,相当于其它高级语言中的“记录” 类型 10.1.1结构类型定义 struct结构类型名/* struct是结构类型关键字* 数据类型数据项1; 数据类型数据项2 数据类型数据项n; /*此行分号不能少!* 「案例10门定义一个反映学生基本情况的结构类型,用以存储学生 的相关信息。 /*案例代码文件名:AL101C。* 倖*功能:定义一个反映学生基本情况的结构类型*

10.1 结构类型与结构变量的定义 C语言中的结构类型,相当于其它高级语言中的“记录” 类型。 10.1.1 结构类型定义 struct 结构类型名 /* struct是结构类型关键字*/ {数据类型 数据项1; 数据类型 数据项2; …… …… 数据类型 数据项n; }; /* 此行分号不能少!*/ [案例10.1] 定义一个反映学生基本情况的结构类型,用以存储学生 的相关信息。 /*案例代码文件名:AL10_1.C。*/ /*功能:定义一个反映学生基本情况的结构类型*/

struct date *日期结构类型:由年、月、日三项组成* fint year int month nt day struct std info/学生信息结构类型:由学号、姓名、性别和生日共4项组成* (char no[71 char name 9 char sex] struct date birthday struct score *成绩结构类型:由学号和三门成绩共4项组成*/ (char no[7] int scorel int score2. int score 3

struct date /*日期结构类型:由年、月、日三项组成*/ {int year; int month; int day; }; struct std_info /*学生信息结构类型:由学号、姓名、性别和生日共4项组成*/ {char no[7]; char name[9]; char sex[3]; struct date birthday; }; struct score /*成绩结构类型:由学号和三门成绩共4项组成*/ {char no[7]; int score1; int score2; int score3; };

(1)“结构类型名”和“数据项”的命名规则,与 变量名相同。 (2)数据类型相同的数据项,既可逐个、逐行分别 定义,也可合并成一行定义 例如,本案例代码中的日期结构类型,也可改为如下 形式: struct date fint year, month, day (3)结构类型中的数据项,既可以是基本数据类型, 也允许是另一个已经定义的结构类型。 例如,本案例代码中的结构类型 std info,其数据项 “ birthday就是一个已经定义的日期结构类型date (4)本书将1个数据项称为结构类型的1个成员 (或分量)

(1)“结构类型名”和“数据项”的命名规则,与 变量名相同。 (2)数据类型相同的数据项,既可逐个、逐行分别 定义,也可合并成一行定义。 例如,本案例代码中的日期结构类型,也可改为如下 形式: struct date {int year, month, day; }; (3)结构类型中的数据项,既可以是基本数据类型, 也允许是另一个已经定义的结构类型。 例如,本案例代码中的结构类型std_info,其数据项 “birthday”就是一个已经定义的日期结构类型date。 (4)本书将1个数据项称为结构类型的1个成员 (或分量)

10.12结构变量定义 用户自己定义的结构类型,与系统定义的标准类型 (int、char等)一样,可用来定义结构变量的类型 1定义结构变量的方法,可概括为两种: (1)接定义法一先定义结构类型、再定义结构变 量 例如,利用[案例10.1中定义的学生信息结构类型 std info,定义了一个相应的结构变量 student: struct std info student 结构变量 student:拥有结构类型的全部成员,其中 birthday成员是一个日期结构类型,它又由3个成员构成 注意:使用间接定义法定义结构变量时,必须同时 指定结构类型名

10.1.2 结构变量定义 用户自己定义的结构类型,与系统定义的标准类型 (int、char等)一样,可用来定义结构变量的类型。 1.定义结构变量的方法,可概括为两种: (1)间接定义法──先定义结构类型、再定义结构变 量 例如,利用[案例10.1]中定义的学生信息结构类型 std_info,定义了一个相应的结构变量student: struct std_info student; 结构变量student:拥有结构类型的全部成员,其中 birthday成员是一个日期结构类型,它又由3个成员构成。 注意:使用间接定义法定义结构变量时,必须同时 指定结构类型名

(2)直接定义法一在定义结构类型的同时,定义结构变量 例如,结构变量 student的定义可以改为如下形式: struct std info 3 student 同时定义结构类型及其结构变量的一般格式如下: struct结构类型名 }结构变量表; 2.说明 (1)结构类型与结构变量是两个不同的概念,其区别如同int类 型与int型变量的区别一样 (2)结构类型中的成员名,可以与程序中的变量同名,它们代 表不同的对象,互不干扰 IReturn

(2)直接定义法──在定义结构类型的同时,定义结构变量 例如,结构变量student的定义可以改为如下形式: struct std_info {…… } student; 同时定义结构类型及其结构变量的一般格式如下: struct [结构类型名] { …… } 结构变量表; 2.说明 (1)结构类型与结构变量是两个不同的概念,其区别如同int类 型与int型变量的区别一样。 (2)结构类型中的成员名,可以与程序中的变量同名,它们代 表不同的对象,互不干扰。 [Return]

102结构变量的引用与初始化 案例10.2]利用[案例101中定义的结构类型 I struct std info 定义一个结构变量 student,用于存储和显示一个学生的基本情况 /*案例代码文件名:AL102C* #include struct. h" /*定义并初始化一个外部结构变量 student*/ struct std_ info student={"000102"张三","男",{19809,20}}: maint i printf("No: %osn,student. no); printf("Name: %osn",student name) printf("Sex: %sn,student sex) printf("Birthday: %d-%d-%d\n",student birthday year student birthday. month, student birthday day) 「程序演示

10.2 结构变量的引用与初始化 [案例10.2] 利用[案例10.1]中定义的结构类型struct std_info, 定义一个结构变量student,用于存储和显示一个学生的基本情况。 /*案例代码文件名:AL10_2.C*/ #include"struct.h" /*定义并初始化一个外部结构变量student */ struct std_info student={"000102","张三","男",{1980,9,20}}; main() { printf("No: %s\n",student.no); printf("Name: %s\n",student.name); printf("Sex: %s\n",student.sex); printf("Birthday: %d-%d-%d\n",student.birthday.year, student.birthday.month, student.birthday.day); } [程序演示]

程序运行结果: No:000102 Name:张三 Sex:男 Birthday: 1980-9-20 1结构变量的引用规则 对于结构变量,要通过成员运算符“.”,逐个访问其 成员,且访问的格式为: 结构变量成员 *其中的“是成员运算符* 例如,案例中的 I student. no,引用结构变量 student中 的no成员; student name引用结构变量 student中的name成 员,等等

程序运行结果: No: 000102 Name: 张三 Sex: 男 Birthday:1980-9-20 1.结构变量的引用规则 对于结构变量,要通过成员运算符“.” ,逐个访问其 成员,且访问的格式为: 结构变量.成员 /*其中的“.”是成员运算符*/ 例如,案例中的student.no,引用结构变量student中 的no成员;student.name引用结构变量student中的name成 员,等等

如果某成员本身又是一个结构类型,则只能通过多级 的分量运算,对最低一级的成员进行引用 此时的引用格式扩展为: 结构变量成员.子成员.最低1级子成员 例如,引用结构变量 student中的 birthday成员的格式 分别为: student. birthday. year student birthday. month student birthday day (1)对最低一级成员,可像同类型的普通变量一样, 进行相应的各种运算 (2)既可引用结构变量成员的地址,也可引用结构 变量的地址

如果某成员本身又是一个结构类型,则只能通过多级 的分量运算,对最低一级的成员进行引用。 此时的引用格式扩展为: 结构变量.成员.子成员.….最低1级子成员 例如,引用结构变量student中的birthday成员的格式 分别为: student.birthday.year student.birthday.month student.birthday.day (1)对最低一级成员,可像同类型的普通变量一样, 进行相应的各种运算。 (2)既可引用结构变量成员的地址,也可引用结构 变量的地址

例如,& student name,& student 2结构变量的初始化 结构变量初始化的格式,与一维数组相似: 结构变量={初值表} 不同的是:如果某成员本身又是结构类型,则该成员 的初值为一个初值表 例如,[案例102中的 student={"000102","张三","男" 1980,9,20}}。 注意:初值的数据类型,应与结构变量中相应成员所 要求的一致,否则会出错。 ReturnI

例如,&student.name ,&student 。 2.结构变量的初始化 结构变量初始化的格式,与一维数组相似: 结构变量={初值表} 不同的是:如果某成员本身又是结构类型,则该成员 的初值为一个初值表。 例如,[案例10.2]中的student={"000102", "张三", "男", {1980,9,20}}。 注意:初值的数据类型,应与结构变量中相应成员所 要求的一致,否则会出错。 [Return]

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共35页,可试读12页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有