数组
结构体
是数目固定,类型不同的若干有序数据项的集合。每个数据项称为一个成员,每个成员可以是一个基本数据类型,或是一个构造类型。
结构体类型的定义:
struct 结构体类型名
{
类型标识符 成员名1;
类型标识符 成员名2;
类型标识符 成员名n;
};
例如定义一个学生信息的结构体如下:
struct student
{
int num;
char name[10];
char sex;
int age;
char addr[50];
int score;
};
这时我们就定义了一个student型的结构体类型,接着就可以定义此类型的结构体变量:
struct student stu1,stu2;//定义了stu1和stu2为struct student型变量,编译系统会为stu1和stu2分配内存空间
在定义结构体类型的同时可以定义结构体变量:
struct 结构体类型名
{
类型标识符 成员名1;
类型标识符 成员名2;
类型标识符 成员名n;
}结构体变量名表;
例如:
struct student
{
int num;
char name[10];
char sex;
int age;
char addr[50];
int score;
}stu1,stu2;
这种方法与前面的定义功能相同,都定义了结构体类型struct student和stu1,stu2两个结构体变量。
另外还可以直接定义结构体变量:
struct
{
int num;
char name[10];
char sex;
int age;
char addr[50];
int score;
}stu1,stu2;
结构体变量的引用:
一般形式:结构体变量名.成员名
例如:stu1.name、stu2.score。
结构体指针:
结构体变量所占内存单元的首地址称为结构体变量的指针。指向一个结构体变量的指针变量称为结构体指针变量。
结构体指针变量的定义:
struct 结构体类型名 *结构体指针变量名
利用指针引用结构体变量成员的一般形式:
(*结构体指针变量).成员名 或者 结构体指针变量->成员名
联合体
定义一个联合类型的一般形式为:
union 联合体类型名
{
类型标识符 成员名1;
类型标识符 成员名2;
类型标识符 成员名n;
};
联合体所占内存单元数目为成员中占内存单元数目最多的成员决定,所有成员共用这段内存。
枚举类型
枚举类型通过枚举一系列有序的标识符来定义。枚举类型定义的一般形式为:
enmu 枚举名{枚举分量名1,枚举分量名2,...,枚举分量名n};
例如:
enmu week{sun,mon,tue,wed,thu,fri,sut};
该句定义了一个枚举类型enmu week,它由枚举常量sun、mon...sut组成。
枚举类型中的枚举常量各自隐含一个int型值。默认第一个枚举常量的值为0,以后逐个加1
另外可以通过赋值的方法来确定枚举变量的值,例如:
enmu week{sun=7,mon=1,tue,wed,thu,fri,sut};
这时,sun的值就是7,mon的值是1,tue到sut因为没有赋值而自动逐个加1。
不妥之处还望大神们拍砖并指正。
|