
C房音+在线开放课程 结构体 主讲:曾志华
结构体 在线开放课程 主讲:曾志华

结构体类型变量的定义 >结构体类型的定义只列出了该结构的组成情况(类型模 板),编译程序并未因此分配存储空间。 >使用结构体变量、数组或指针变量前,必须对其进行定义, 为其开辟对应的内存空间存储结构体数据
结构体类型变量的定义 结构体类型的定义只列出了该结构的组成情况(类型模 板),编译程序并未因此分配存储空间。 使用结构体变量、数组或指针变量前,必须对其进行定义, 为其开辟对应的内存空间存储结构体数据

定义方式1: 身程序设汁 先定义结构体类型,再单独进行变量定义 struct student char name [12]; 注意:不能只使用struct而不写结构 char sex; 体标识名student,必须一起使用才 float sc[4]; 能唯一确定前面所说明的结构体类型 }; struct student std,pers[3],*pstd;
struct student { char name[12]; char sex; float sc[4]; }; 定义方式1: 先定义结构体类型,再单独进行变量定义 struct student std, pers[3],*pstd; 注意:不能只使用struct而不写结构 体标识名student,必须一起使用才 能唯一确定前面所说明的结构体类型

定义方式2:紧跟在结构体类型说明之后定义 (高设计 struct student char name [12]; char sex; float sc[4]; std,pers [3],*pstd;
struct student { char name[12]; char sex; float sc[4]; }std,pers[3],*pstd; 定义方式2:紧跟在结构体类型说明之后定义

给结构体变量赋初值 C程设计 所赋初值顺序放在一对花括号中,例如: struct student char name[12]; char sex; struct date birthday; float sc[4] }std={“Li Ming'”,M',1990,5,10,88.3,98.6,85.5,90.0;
所赋初值顺序放在一对花括号中,例如: 给结构体变量赋初值 struct student { char name[12]; char sex; struct date birthday; float sc[4] }std={“Li Ming”,‘M’,1990,5,10,88.3,98.6,85.5,90.0};

身壳程序设计 给结构体变量std赋初值后,其内存如图所示: name sex year month day sc[o] sc[1] sc[2] sc[3] 赋 按照每个成员在结构体中 的顺序一一对应赋初值; “Li Ming'” M' 1990 5 10 88.3 98.6 85.5 90.0
给结构体变量std赋初值后,其内存如图所示: name sex year month day sc[0] sc[1] sc[2] sc[3] “Li Ming” ‘M’ 1990 5 10 88.3 98.6 85.5 90.0 赋 值 按照每个成员在结构体中 的顺序一一对应赋初值;

1、给结构体变量赋初值 身程序设计 注意:不允许跳过前面的成员给后面的成员赋初值;但可以只给前面的 若干成员赋初值。后面未赋初值的成员,对于数值型和字符型数据,系 统自动赋初值零。 例如: struct student “Li Ming" M' 0 0 0.0 0.0 0.0 0.0 { char name[12]; char sex; struct date birthday; float sc[4] }std{“Li Ming”,M'};
注意:不允许跳过前面的成员给后面的成员赋初值;但可以只给前面的 若干成员赋初值。后面未赋初值的成员,对于数值型和字符型数据,系 统自动赋初值零。 例如: struct student { char name[12]; char sex; struct date birthday; float sc[4] }std={“Li Ming”,‘M’}; “Li Ming” ‘M’ 0 0 0 0.0 0.0 0.0 0.0 1、给结构体变量赋初值

引用结构体变量中的数据 1、对结构体成员的引用 >2、对结构体变量中的成员进行操作 3、相同类型结构体变量之间的整体赋值
引用结构体变量中的数据 1、对结构体成员的引用 2、对结构体变量中的成员进行操作 3、相同类型结构体变量之间的整体赋值

1、对结构体成员的引用 程序设计 若已经定义了一个结构体变量和一个基类型为同一结构体类型的 指针变量,并使用该指针指向该结构体变量,则可以用以下三种形 式引用结构体变量中的成员: (1)结构体变量名.成员名 (2)(*指针变量名).成员名 点号,:称为成员运算符 (3)指针变量名->成员名 箭头一〉:称为结构指向运算符 在G语言运算符中,它们优先级 最高
若已经定义了一个结构体变量和一个基类型为同一结构体类型的 指针变量,并使用该指针指向该结构体变量,则可以用以下三种形 式引用结构体变量中的成员: (1)结构体变量名.成员名 (2)(*指针变量名).成员名 (3)指针变量名->成员名 1、对结构体成员的引用 点号 . :称为成员运算符 箭头-> :称为结构指向运算符 在C语言运算符中,它们优先级 最高

1、对结构体成员的引用 struct student { char name [12]; 此时,若要引用结构体变量std中 char sex; 的sex成员,可以用以下语句: struct date birthday; std.sex; float sc[4]; ps->sex; (*ps).sex; ]std,pers [3],*ps; 注意:最后一条语句的括号不能 ps =&std; 省略
struct student { char name[12]; char sex; struct date birthday; float sc[4]; }std,pers[3],*ps; ps = &std; 此时,若要引用结构体变量std中 的sex成员,可以用以下语句: std.sex; ps->sex; (*ps).sex; 注意:最后一条语句的括号不能 省略 1、对结构体成员的引用