一、结构:
格式:
struct <
结构名> { <
成员列表>};
例子:
struct student
{
int num;
char name[20];
char sex;
float score;
};
解释:
- struct:保留字,表示开始定义结构 student
- student:结构名,用于说明结构类型的变量
- student有四个成员: int类型的 num、 char类型的数组name和变量sex以及float类型的score
- 结构的定义以分号结尾
声明结构变量
student stud1, stud2, *sptr,stu[20];
定义结构时同时声明结构变量
struct student
{
int num;
char name[20];
char sex;
float score;
} stud1, stud2;
结构的定义可以嵌套
struct date {
int year;
int month;
int day;
};
struct people {
int num;
char name[20];
char sex;
date birthday;
};
struct people wang;
结构变量的初始化
student stud5 =
{ 102, "Li Xiaoming", 'M', 92 };
结构变量的赋值
stud1 = stud2;
存取结构的成员
- 点操作符 (.):和结构变量名一起使用
wang.birthday.year = 1986; printf( "%s", stud1.name );
- 箭头操作符(->) :和结构指针名一起使用
sptr = &stud1; printf( "%s", sptr->name );
- sptr->name等价于 (*sptr ).name
结构数组——结构类型的数组元素
struct student
{
int num;
char name[20];
char sex;
float score;
}class[5];
枚举
enum weekday {Sun,Mon,Tue,Wed,Thu,Fri,Sat};
枚举常量:与一般符号常量类似,自动定值起始值为 0 开始,递增值为 1
- 可以用 = 为枚举常量定值
- 枚举定义中的标识符必须唯一
- 枚举变量声明:与一般变量相同
- 枚举变量只能被赋予相应的枚举常量
枚举举例
enum weekday {Sun=1,Mon,Tue,Wed,Thu,Fri,Sat};
enum weekday {Sun=1,Mon,Tue=5,Wed,Thu,Fri=10,Sat};
枚举变量的使用
weekday day ;
day = mon;
day = (weekday)2
day = 2; //error