〔语言序设计 第十一章结构体 任課老师:彭金莲
第十一章 结构体 任课老师:彭金莲
本章要求 ◆什么是结构体结构体与数组均为C语言的构造类型数据,二者的 主要区别 今定义结构体类型的一般形式 区别结构体类型和结构体类型变量 令定义结构体类型变量的三种方法 令结构体类型变量的引用 令引用结构体类型变量时应遵守4条规则 令结构体变量的初始化 令对不同存储类型的结构体类型变量,初始化方法不同 结构体类型数组的概念 结构体类型数组的定义和引用 ◆指向结构体变量的指针变量 用指向结构体的指针作函数参数 链表的概念 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 本章要求 ❖ 什么是结构体 结构体与数组均为C语言的构造类型数据,二者的 主要区别 ❖ 定义结构体类型的一般形式 ❖ 区别结构体类型和结构体类型变量 ❖ 定义结构体类型变量的三种方法 ❖ 结构体类型变量的引用 ❖ 引用结构体类型变量时应遵守4条规则 ❖ 结构体变量的初始化 ❖ 对不同存储类型的结构体类型变量,初始化方法不同 ❖ 结构体类型数组的概念 ❖ 结构体类型数组的定义和引用 ❖ 指向结构体变量的指针变量 ❖ 用指向结构体的指针作函数参数 ❖ 链表的概念
第十一章结构体 11.1概述 11.2定义结构体类型变量的方法 113结构体变量的引用 11.4结构体变量的初始化 令115结构体数组 冷116指向结构体类型数据的指针三 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 第十一章 结构体 ❖ 11.1 概述 ❖ 11.2定义结构体类型变量的方法 ❖ 11.3 结构体变量的引用 ❖ 11.4 结构体变量的初始化 ❖ 11.5 结构体数组 ❖ 11.6 指向结构体类型数据的指针
11.1概述 令数据的基本类型:整型、实型( float double)、字符型 数组是构造类型:每个元素为同一类型 令结构体( structure)是用户定义的一种复合型数据类型, 结构体也是一种数据类型,和系统提供的基本类型作用 样,所不同的是它把互相联系的数据组合成一个整体。 它由系统提供的基本类型组成,这些基本数据类型虽不 相同,但它们却是有机的整体,一经定义,就可用此类 型定义相关的变量。 num name sex age score addr 10010iFuM1887.5Bei lIng 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 §11.1 概述 ❖ 数据的基本类型:整型、实型(float,double)、字符型。 ❖ 数组是构造类型:每个元素为同一类型 ❖ 结构体(structure)是用户定义的一种复合型数据类型, 结构体也是一种数据类型,和系统提供的基本类型作用 一样,所不同的是它把互相联系的数据组合成一个整体。 ❖ 它由系统提供的基本类型组成,这些基本数据类型虽不 相同,但它们却是有机的整体,一经定义,就可用此类 型定义相关的变量
一个结构体的例子 令一个学生的学号、姓名 struct stendent 性别、年龄、成绩、地 址,是互相联系的数据, int num;,学号 在C语言中用“结构体 char name20],姓名十 ( structure)来定义。 char sex;r性别 令类型一旦定义,就可以 用该数据类型定义变量: 令 Int age;年龄 例如: float score;成绩 令 struct student char addr[303,地址y liming, gaofen 不要忽 略 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 一个结构体的例子 ❖ struct stendent ❖ { int num; /* 学号 */ ❖ char name[20]; /* 姓名 */ ❖ char sex; /* 性别 */ ❖ int age; /* 年龄 */ ❖ float score; /* 成绩 */ ❖ char addr[30]; /* 地址 */ ❖ }; ❖ 一个学生的学号、姓名、 性别、年龄、成绩、地 址,是互相联系的数据, 在C语言中用“结构体 (structure)”来定义。 ❖ 类型一旦定义,就可以 用该数据类型定义变量: ❖ 例如: ❖ struct student liming,gaofen ; 不要忽 略 这个分 号
§112定义结构体类型变量的方法 令结构体变量的使用方法: 定义结构体类型;再用此类型定义变量 在定义类型的同时定义变量 、直接定义结构体类型的变量 一般方法 struct结构名 类型变量名 类型变量名 }结构变量; 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 §11.2定义结构体类型变量的方法 ❖ 结构体变量的使用方法: ❖ 一、定义结构体类型;再用此类型定义变量。 ❖ 二、在定义类型的同时定义变量。 ❖ 三、直接定义结构体类型的变量 ❖ 一般方法 ❖ struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量;
一、定义结构体类型再用此类型定义变量 今 struct s 令{ int num; 结构体 char name[] 类型名称 char sex 定义结构体 Int age float score, 定义结构 char addr 20 变量 ☆ struct s sI.S2 变量名称 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 一、定义结构体类型;再用此类型定义变量 ❖ struct s ❖ { int num; ❖ char name[20]; ❖ char sex; ❖ int age; ❖ float score; ❖ char addr[20]; ❖ } ; ❖ struct s s1, s2; 结构体 类型名称 定义结构体 类型 定义结构 体 变量 变量名称
二、在定义类型的同时定义变量 ☆ struct s 结构体 类型名称 i int num char name 201 定义结构体 char sex int age float score 定义结 char addr[201 变量 SI. S2 变量名称 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 二、在定义类型的同时定义变量 ❖ struct s ❖ { int num; ❖ char name[20]; ❖ char sex; ❖ int age; ❖ float score; ❖ char addr[20]; ❖ } s1, s2; 结构体 类型名称 定义结构体 类型 定义结构 体 变量 变量名称
三、直接定义结构体类型的变量 ☆ struct 没有结构体 类型名称 i int num char name[20: 定义结构体 char sex int age float score 定义结 char addr[201 变量 SI. S2 变量名称 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 三、直接定义结构体类型的变量 ❖ struct ❖ { int num; ❖ char name[20]; ❖ char sex; ❖ int age; ❖ float score; ❖ char addr[20]; ❖ } s1, s2; 没有结构体 类型名称 定义结构体 类型 定义结构 体 变量 变量名称
例T-0-1.c用结构体类型定义两个学生的有关信息 ☆maln ☆ slnum=11981; i struct s g. strcpy(sl name,"zhang XIn Int num 令 sImex-=m char name[20]; Sl age=19: sl score=96.5 char sex 令 strcpy( sadar, shangha”) Int age 冷S2num=12981; float score 令 strcpy(s2name, wang I”) char addr20,‖s2sex=f 62. age=20 冷 struct s sI,s2; ◆s2. score=98.5 令 strcpy(S2addr, beijing”); 上一页下一页 返回
上一页 下一页 返回 第十一章 结构体 计算机系彭金莲制作 例T11-0-1.c用结构体类型定义两个学生的有关信息 ❖ main( ) ❖ { struct s ❖ { int num; ❖ char name[20]; ❖ char sex; ❖ int age; ❖ float score; ❖ char addr[20]; ❖ } ; ❖ struct s s1, s2; ❖ s1.num=11981; ❖ strcpy(s1.name, “zhang xin”); ❖ s1.sex=‘m’; s1.age=19;s1.score=96.5; ❖ strcpy(s1.addr,“shanghai”); ❖ s2.num=12981; ❖ strcpy(s2.name,“wang li”); ❖ s2.sex=‘f’; ❖ s2.age=20; ❖ s2.score=98.5; ❖ strcpy(s2.addr, “beijing” );