内容正文:
YCF
正版可修改PPT
(中职)C语言程序设计模块九ppt电子课件
1
结构体与联合体
模块9
LOGO
9.1结构体(变量)的定义与说明
9.1.1结构体的定义
结构体使用struct关键字进行定义。
struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
……
数据类型 成员名n;
} ;/*注意别丢了分号*/
例如,定义一个名为student的结构体:
struct student
{char name[8];
char sex;
char nation[10];
int age;
float score;
};
9.1结构体(变量)的定义与说明
9.1.2结构体变量的定义与赋值
(1)先定义结构,后定义变量。
struct student
{char name[8];
char sex;
char nation[10];
int age;
float score;
};
struct student x,y;/*这里定义了x,y两个结构体变量*/
(2)结构体和结构体变量同时定义。
struct student
{char name[8];
char sex;
char nation[10];
int age;
float score;
}x,y;/*这里同时定义了x,y两个结构体变量*/
1.结构体变量的定义方法
9.1结构体(变量)的定义与说明
9.1.2结构体变量的定义与赋值
定义时可以省略结构体名。
struct
{char name[8];
char sex;
char nation[10];
int age;
float score;
}x,y;/*这里同时定义了x,y两个结构体变量*/
不建议省略结构体名。一个明晰的结构体名可以帮我们直观地了解到本结构体是针对哪个方面的数据构造类型。
9.1结构体(变量)的定义与说明
9.1.2结构体变量的定义与赋值
(3)结构体的嵌套定义。所谓结构体的嵌套定义指的是一个结构体的变量做另一个结构体的成员。例如:
struct date
{int year;
int month;
int day;
};
struct student
{char name[20];
char sex;
char nation[10];
int age;
struct date birthday; /*这里就是date结构体变量birthday做student的成员*/
} x ;
9.1结构体(变量)的定义与说明
9.1.2结构体变量的定义与赋值
2.结构体变量的赋值
给结构体变量赋值,实质是给各个成员进行赋值,见表9-1。例如:
struct student
{char name[20];
char sex;
char nation[10];
int age;
float score;
}x={"Lixiaomei",'f',
"dongze",18,456};
表9-1给结构体变量赋值
给结构体变量赋值时,要以成员顺序为依据按序赋值,用{ }括起来。
9.1结构体(变量)的定义与说明
9.1.3结构体变量的使用
结构体变量的使用实质是结构体成员的引用,即其单个成员的运算操作(如赋值、输入/输出等)。
结构体成员的引用方法是:
结构体变量名.成员名
其中,“.”为成员运算符。
成员运算符“.”、成员指向运算符“->”、变址符“[ ]”和括号“()”运算符在C语言中具有最高的运算级别。
9.1结构体(变量)的定义与说明
9.1.3结构体变量的使用
【例9-1】对结构体变量进行动态赋值。
#include <stdio.h>
#include <string.h>
struct date
{int year;
int month;
int day;
};
struct student
{char name[20];
char sex;
char nation[10];
int age;
float score;
struct date birthday;
} y={"zhangjie",'m',"don",18,340}; /*注意birthday没有赋值*/
int main();
{struct student x,z;
/*下面对结构体变量x各成员进行赋值*/
strcpy(x.name,"Lily");/*不能写成x.name="Lily",因为name数组名是地址常量 */
x.sex='f';
strcpy(x.nation,"dongzi");
x.age=18;
x.score=428;
9.1结构体(变量)的定义与说明
9.1.3结构体变量的使用
x.birthday.year=1999; /*嵌套定义时须用成员运算符一级一级地找到最底层一级成员*