c语言 结构体.ppt
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
float pay;
}; struct po_info //配偶信息类型
char name[9]; char sex[2]; struct date birthday;
{ struct base_info info; char address[20];
}; struct bb_info //子女信息类型
✓ 对最低一级成员,可像同类型的普通变量一样,进行相 应的各种运算。 ✓ 既可引用结构变量成员的地址,也可引用结构变量的地址
✓ 如:&student.birthday.year ,&student
struct date //日期结构类型
{
int year;
int month;
int day;
};
struct yg_info //员工信息类型
{
char no[6];
char name[9];
char sex[2];
struct date birthday;
char zw[9];
char mar[2];
};
{ struct base_info info;
char born[20];
};
结构变量的定义 ✓ 结构类型与结构变量是两个不同的概念
间接定义法
struct std_info { char no[7];
char name[9]; char sex[2]; struct date birthday; }; struct std_info student;
F 1985 10 20
80
90
☆
“结构类型名”和“数据项”的命名规则,与变量名相同。 数据类型相同的数据项,既可逐个、逐行分别定义,也可合
并成一行定义。 本例中的日期结构类型,也可改为如下形式:
struct date
{
int year, month, day;
}; ✓ 结构类型中的数据项,既可以是基本数据类型,也允许是
第二讲 结构与链表
主要内容 ✓ 结构类型与结构变量的定义 ✓ 结构变量的引用与初始化 ✓ 结构数组 ✓ 指向结构类型数据的指针 ✓ 链表─结构指针的应用 ✓ 定义已有类型的别名
结构类型的引入
000001 000001
Angel 95
F 1985 10 20
80 90 结构类型定义
struct 结构类型名
float pay;
};
struct po_info //配偶信息类型
{
char name[9];
char sex[2];
struct date birthday;
char address[20];
};
struct bb_info //子女信息类型
{
char name[9];
char sex[2];
另一个已经定义的结构类型 ✓ 本例中的结构类型std_info,其数据项“birthday”就是一
个已经定义的日期结构类型date ✓ 将1个数据项称为结构类型的1个成员(或分量)。
✓定义结构类型: ✓员工信息:职工号,姓名,性别,出生日期,职务,婚否,工资 ✓员工配偶信息:姓名,性别,出生日期,工作单位 ✓员工子女信息:姓名,性别,出生日期,出生地
{ 数据类型 数据项1;
数据类型 数据项2;
……
……
数据类型 数据项n;
};
struct date
/Байду номын сангаас日期结构类型
{int year;
int month;
int day;
};
struct std_info //学生信息结构类型
{char no[7];
char name[9];
char sex[2];
struct date birthday;
};
struct score //成绩结构类型
{char no[7];
int score1; int score2;
000001
Angel
int score3;
};
000001 95
定义学生基本信息 的结构类型,存储 学生的相关信息 (学号,姓名,性 别,出生日期,三 门课的成绩)
void main()
{ printf("%s\n",stu.no);
printf("%s\n",);
printf("%s\n",stu.sex);
printf("%d-%d-%d\n",stu.birthday.year,
stu.birthday.month, stu.birthday.day);
}
✓ 通过成员运算符“.”,逐个访问其成员,格式:
✓ 结构变量.成员
✓ student.no;
✓ 如果某成员本身又是一个结构类型,则通过多级的分量 运算,对最低一级的成员进行引用 ✓ 引用格式为:
✓ 结构变量.成员.子成员.….最低一级子成员 ✓ student.birthday.day
struct date birthday;
char born[20];
};
定义结构类型:
员工信息:职工号,姓名,性别,出生日期,职务,婚否,工资
员工配偶信息:姓名,性别,出生日期,工作单位
员工子女的信息:姓名,性别,出生日期,出生地
struct date { int year,month,day;
存储和显示一个学生的基本情况。
char name[9];
char sex[2];
struct date birthday;
#include"struct.h"
};
//定义并初始化一个外部结构变量student
struct std_info stu={"000102",“angel",“f",{1980,9,20}};
直接定义法
struct std_info { char no[7];
char name[9]; char sex[2]; struct date birthday; }student;
//struct.h文件 struct date {int year,month,day; };
例: 利用定义的结构类型struct std_ins{ftorcu,hcat定rsnt义do_[结i7n]f;构o 变量,
stsrturucctt ybgb_i_nfion/f/o员工b信a息b类y;型 ba{bcysh.tbraurocntronb[a6s];e_info info; babyc.hianrfzow.[n9a];me
}; struct base_info {
babyc.hianrfmoa.br[i2r]t;hday.year
}; struct po_info //配偶信息类型
char name[9]; char sex[2]; struct date birthday;
{ struct base_info info; char address[20];
}; struct bb_info //子女信息类型
✓ 对最低一级成员,可像同类型的普通变量一样,进行相 应的各种运算。 ✓ 既可引用结构变量成员的地址,也可引用结构变量的地址
✓ 如:&student.birthday.year ,&student
struct date //日期结构类型
{
int year;
int month;
int day;
};
struct yg_info //员工信息类型
{
char no[6];
char name[9];
char sex[2];
struct date birthday;
char zw[9];
char mar[2];
};
{ struct base_info info;
char born[20];
};
结构变量的定义 ✓ 结构类型与结构变量是两个不同的概念
间接定义法
struct std_info { char no[7];
char name[9]; char sex[2]; struct date birthday; }; struct std_info student;
F 1985 10 20
80
90
☆
“结构类型名”和“数据项”的命名规则,与变量名相同。 数据类型相同的数据项,既可逐个、逐行分别定义,也可合
并成一行定义。 本例中的日期结构类型,也可改为如下形式:
struct date
{
int year, month, day;
}; ✓ 结构类型中的数据项,既可以是基本数据类型,也允许是
第二讲 结构与链表
主要内容 ✓ 结构类型与结构变量的定义 ✓ 结构变量的引用与初始化 ✓ 结构数组 ✓ 指向结构类型数据的指针 ✓ 链表─结构指针的应用 ✓ 定义已有类型的别名
结构类型的引入
000001 000001
Angel 95
F 1985 10 20
80 90 结构类型定义
struct 结构类型名
float pay;
};
struct po_info //配偶信息类型
{
char name[9];
char sex[2];
struct date birthday;
char address[20];
};
struct bb_info //子女信息类型
{
char name[9];
char sex[2];
另一个已经定义的结构类型 ✓ 本例中的结构类型std_info,其数据项“birthday”就是一
个已经定义的日期结构类型date ✓ 将1个数据项称为结构类型的1个成员(或分量)。
✓定义结构类型: ✓员工信息:职工号,姓名,性别,出生日期,职务,婚否,工资 ✓员工配偶信息:姓名,性别,出生日期,工作单位 ✓员工子女信息:姓名,性别,出生日期,出生地
{ 数据类型 数据项1;
数据类型 数据项2;
……
……
数据类型 数据项n;
};
struct date
/Байду номын сангаас日期结构类型
{int year;
int month;
int day;
};
struct std_info //学生信息结构类型
{char no[7];
char name[9];
char sex[2];
struct date birthday;
};
struct score //成绩结构类型
{char no[7];
int score1; int score2;
000001
Angel
int score3;
};
000001 95
定义学生基本信息 的结构类型,存储 学生的相关信息 (学号,姓名,性 别,出生日期,三 门课的成绩)
void main()
{ printf("%s\n",stu.no);
printf("%s\n",);
printf("%s\n",stu.sex);
printf("%d-%d-%d\n",stu.birthday.year,
stu.birthday.month, stu.birthday.day);
}
✓ 通过成员运算符“.”,逐个访问其成员,格式:
✓ 结构变量.成员
✓ student.no;
✓ 如果某成员本身又是一个结构类型,则通过多级的分量 运算,对最低一级的成员进行引用 ✓ 引用格式为:
✓ 结构变量.成员.子成员.….最低一级子成员 ✓ student.birthday.day
struct date birthday;
char born[20];
};
定义结构类型:
员工信息:职工号,姓名,性别,出生日期,职务,婚否,工资
员工配偶信息:姓名,性别,出生日期,工作单位
员工子女的信息:姓名,性别,出生日期,出生地
struct date { int year,month,day;
存储和显示一个学生的基本情况。
char name[9];
char sex[2];
struct date birthday;
#include"struct.h"
};
//定义并初始化一个外部结构变量student
struct std_info stu={"000102",“angel",“f",{1980,9,20}};
直接定义法
struct std_info { char no[7];
char name[9]; char sex[2]; struct date birthday; }student;
//struct.h文件 struct date {int year,month,day; };
例: 利用定义的结构类型struct std_ins{ftorcu,hcat定rsnt义do_[结i7n]f;构o 变量,
stsrturucctt ybgb_i_nfion/f/o员工b信a息b类y;型 ba{bcysh.tbraurocntronb[a6s];e_info info; babyc.hianrfzow.[n9a];me
}; struct base_info {
babyc.hianrfmoa.br[i2r]t;hday.year