第11章结构体与共用体
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
60个字节
};
score
12个字节
11.1 结构体
11.1.2 结构体变量的定义与初始化 “.”是分量
4. 结构体变量成员的引用
运算符,运算
级别最高。
结构体变量成员引用的一般形式:
结构体变量名.成员名
struct date { int year, month, day;}; struct student
11.1 结构体
11.1.2 结构体变量的定义与初始化
1. 结构体类型变量的定义
直接定义结构体类型变量 struct
{ 成员定义表; }变量名表; 例如:
struct { char num[8],name[20],sex;
int age; float score; }st[30], a, b, c;
struct date birthday; float score; }a;
11.1 结构体
11.1.2 结构体变量的定义与初始化
2. 结构体变量的初始化
【例11.4】结构体变量的初始化。 1、如果初值个数少于结
struct date { int year, month, day;};
构体成员个数,则将无 初值对应的成员赋以0值。 2、如果初值个数多于结
struct student
结构体变量的各个成员可 进行何种运算,由该成员
的数据类型决定
{ char num[8], name[20], sex; struct date birthday; float score; }a;
a.birthday.year a.birthday.month a.birthday.day
结 构 体 变 量 a 的 各 成 员 可 分 别 表 示 为 a.num、 a.name、a.sex、a.birthday、a.score
};
11.1 结构体
11.1.2 结构体变量的定义与初始化
1. 结构体类型变量的定义
struct student
利用已定义的结构体类型名定义nu变m量
struct 结构体名 变量名表; name
例如:
sex
age
struct student s[30], t1, t2;
addr
8个字节 30个字节 1个字节 2个字节 60个字节
name
30个字节
{ char num[8];
sex
1个字节
char name[30];
year 2个字节
char sex; stΒιβλιοθήκη Baiduuct date birthday;
/*b成irt员hd为ay结m构o体nth类2型个*字/ 节
char addr[60];
day 2个字节
int score[6];
addr
构体成员个数,则编译
{ char num[8], name[20], sex; 出错。
struct date birthday;
float score;
}a={"9606011","Li ming",'M',{1977,12,9},83},
b={"9608025","Zhang liming",'F',{1978,5,10},87},c;
元素的个数可以省略,根据赋初值时 结构体常量的个数确定数组元素的个数
11.1 结构体
11.1.2 结构体变量的定义与初始化
3. 结构体变量的运算
用sizeof运算符计算结构体变量所占内存空间
struct date { int year, month, day;}; struct student { char num[8], name[20], sex;
赋值、存取或运算。
成员也可以是结构变量。
对结构中的成员,可以单独使用,它的作用与 地位相当于普通变量。
成员名可与程序中的变量名相同时,也可与不 同结构体类型的成员名相同,二者代表不同的 对象。
struct date { int year,month,day;}; num
8个字节
struct student
11.1 结构体
11.1.2 结构体变量的定义与初始化
2. 结构体变量的初始化
【例11.5】结构体数组的初始化。 struct s { char num[8],name[20],sex; float score; }stu[3]={{"9606011","Li ming",'M',87.5}, {"9606012","Zhang jiangguo",'M',79}, {"9606013","Wang ping",'F',90}};
char aseuxt;hor[30]; //**作性者别是字符数型组*类/ 型*/
cinhtaargpeu; blisher[60/*];年/*龄出是版整社型是字*/符数组类型*/
fclhoaart apdridcre[;60]; int score[6]; }i;nt n;
/* /*
成住//**绩址价库是是格存整字是量型符单是数数精整组组度型类类实*/型型型***///
11.1 结构体
11.1.2 结构体变量的定义与初始化
1. 结构体类型变量的定义
在定义结构体类型的同时定义变量 struct 结构体名
{ 成员定义表; }变量名表; 例如:
struct student { char num[8],name[20],sex;
int age; float score; }st[30];
score 12个字节
按照结构体类型的组成,系统为定义的结构体 变量分配内存单元。结构体变量的各个成员在内存 中占用连续存储区域,结构体变量所占内存大小为 结构体中每个成员所占用内存的长度之和。
11.1 结构体
结构体类型与变量的说明
类型与变量是不同的概念。
➢ 应先定义一个结构体类型,而后再定义结构体变量。 ➢ 系统对类型不分配空间,仅对变量分配空间。 ➢ 只能对变量赋值、存取或运算,而不能对一个类型
第11章结构体与共用体
11.1 结构体
11.1.1 结构体与结构体类型的定义
例如图书类型的定义:
s例tr如uc学t b生oo类kc型ar的d 定义:
struct student {{ cchhaarr nnuumm[[81]0;];
//**学图号书是分字类符编数号组是类字型符数*/组类型*/
cchhaarr nnaammee[[3300]];; //**姓书名名是是字字符符数数组组类类型型**//