1.结构体类型
将不同的数据组合成一个有机的整体,这些组合在一个整体中的数据是相互联系的。
struct结构体类型名:
struct 结构体类型名
{成员表列};
eg.
struct Student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30]
};
在声明一个结构体类型时必须对各成员都进行类型声明,即
类型名 成员名;
(1)定义结构体类型变量的方法
1,先声明结构体类型再定义变量名。
2,在声明类型的同时定义变量。
3,直接定义结构体类型变量。
其一般形式为:
struct //注意没有结构体类型名
{
成员表列
}变量名表列;
(2)结构体变量初始化
可以在定义时指定初始值
(3)结构体变量的引用
1,可以将一个结构体变量的值赋值给另一个具有相同结构的结构体变量。
2,可以引用一个结构体变量中的一个成员的值。
3,如果成员本身也是一个结构体类型,则要用若干个成员运算符,一级一级找到最低一级的成员。
4,不能将一个结构体变量作为一个整体进行输入和输出。
5,对结构体变量的成员可以像普通变量一样进行各种运算。
6,可以引用结构体变量成员的地址,也可以引用结构体变量的地址。
eg.
#include <iostream>
using namespace std;
struct Data
{
int month;
int day;
int year;
};
struct Student
{
int num;
char name[20];
char sex;
Data birthday;
float score;
}student1,student2={10002,"Wang Li",'f',5,23,1982,89.5};
int main(int argc, char *argv[])
{
student1=student2;
cout << student1.num << endl;
cout << student1.name << endl;
cout << student1.sex << endl;
cout << student1.birthday.month<<'/'<< student1.birthday.day <<'/'<< student1.birthday.year << endl;
cout << student1.score << endl;
return 0;
}
运行结果如下:
2,共用体
使几个不同的变量共占同一段内存的结构,称为共用体。
声明共用体类型的一般形式为
union 共用体类型名
{成员表列
};
定义共用体变量的一般形式为
共用体类型名 共用体变量名;
3,枚举类型
所谓”枚举“是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
声明枚举类型的一般形式为
enum 枚举类型名 {枚举常量表列};
4,用typedef声明类型
用typedef声明一个新的类型名来代替已有的类型名。
声明一个新的类型名的方法是:
(1)先按定义变量的方法写出定义语句
(2)将变量名换成新类型名
(3)在最前面加typedef
(4)然后可以用新类型名去定义变量。
说明:
(1)typedef可以声明各种类型名,但不能用来定义变量。
(2)用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。