文档介绍:第六讲结构体和共用体
结构体
设一个会员有会员证号(num)姓名(name)职称(title)通信地址(addr)邮政编码(zip)和电话号码(tel)等数据
c++定义struct mail 结构体名
{int num
char name[15]
char title[10]
char addr[20]
unsigned long int zip
char tel[15]
}
Num
Name
Title
Addr
Zip
Tel
1
Wang ping
Professor
Nanchang
330034
8223476
说明结构体是一种数据类型(可变的,用户自定义的)
例:#include<>
#include<>
#include<>
struct mail
{int num;
char name[15]
char title[10]
char addr[20]
unsigned long int zip
char tel[15]
};
int main()
{mail: member;
=1;
strcpy(,”wangping”);
strcpy(,”professor”);
strcpy(,”beijing”);
=10083;
strcpy (,”255888”)
cout<<”num name title addr zip tel<<”\n
cout<<<<”\n
return 0
}
结构体类型与结构体变量的定义
(一)定义结构体类型
struct 结构体名
{类型标志符1 成员1
类型标志符2 成员2
};
struct为关键字(保留字)一个结构体内至少有一个成员,每个成员称为结构体中的一个域,成员的命名规则与变量名相同,但不能称为变量名。所有成员组成“成员序列“也称为”域表“,故结构体可写成
struct 结构体名
{成员表列}
(二)定义结构体类型变量
方法一: 在定义结构体类型同时定义结构体变量
例:
struct mail
{int num
char name[15]
…
}
member1,member2;
方法二:在定义结构体类型之后定义结构体变量如:mail member1, member2
说明: c语言必须写成 structmail member1,member2;
c++可省去struct (通常不写, 写也支持)
方法三:直接定义结构体类型变量
格式:struct
{成员列表
}变量名列表
该方法不便在程序过程在定变量,也不便参数传递
例:struct
{ long num
char name[10]
float score
}strudent1,student2;
说明。 1。结构体类型与结构体变量是不同的概念。例如:int I I与int不是同一回事定义了类型即定义了变量的存储结构
++编译系统没有预先定义某种结构体类型,程序员自己定义。
。
4. 在同一个程序或同一个函数中,可以定义与结构体成员相同的变量名,他们分别代表不同数据对象
例:struct mail
{int num;
char name[15]
….
} member1
int num
char name[15];
含义和应用方法不一样
(四)结构体的嵌套
说明结构体成员可以是int , float 也可以是构造类型(数组,结构体)
例:struct birthday
{int year;
int moth
int day
}
struct student
{char name [15]
long num;
birthday birth
…
}
结构体变量的初始化及其引用。
(一)   结构体变量的初始化
1。在函数执行时用赋值语句对结构体各个成员分别赋值
member1 num=1;
strcpy(,”wang ping”);
…
。
(1) 结构体变量为外部存储变量时的初始化
一般形式为:1 结构体名变量名=[初始数据]
例:mail member1={1,”wang ping”,”professor”, ”Beijing”, 100083,”254346”},
(2) struct 结构体名
{成员列表}变量名={初始数据}
例:struct mail