一、枚举
1.枚举是用户定义的一种数据类型,它用关键字enum以以下方式来进行声明;
enum 枚举类型名字 {名字0,名字1…名字n};
2.我们通常所用的是打括号里面的文字,他们本身就代表一种数字,是常量符号,数据类型是int,如:
enum color{red,yellow,blue}; enum color t = red;
就创建了三个常量,其中red = 0;yellow = 1;blue = 2;
并使用enum color数据类型定义了t = red;
3. enum 枚举类型名字 是一种数据类型,如同 int,double 等等;而枚举量就是里面的名字可以作为数字使用;
4. 同时里面的名字可以自己给他们数值,不一定非得让他们按照默认顺序来,其后面没有给数值一次比前面的值大一。
二、结构
1.为什么使用结构
明确数据关系、简化对数据块的操作、简化参数列表、减少维护;
2.定义:
```cpp
< struct date//声明1
{
int year;
int month;
int day;
}p1,p2;p1.p2都是date,也相当于today;
struct date//声明2
{
int year;
int month;
int day;
};
定义;struct date today `
引用:
today.year;
today.month;
today.day;
赋值; today = (struct date){1,2,3};类型强制转换。
这些引用的东西可以直接作为变量使用,与int n中的n没有任何区别>
3.与本地变量一样,在函数内部声明只能在函数内部使用,因此我们通常在函数外部对结构进行声明,使其可以被多个函数使用;
4.其与数组不一样的是,
它可以赋值,例如;p1 = p2。
结构变量名字并不是结构变量的地址,这跟数组是不同的,若要引用地址,则必须使用&符号;
可以使用p->month 来表示p指向结构里面的month,里面的p指的是结构名称的地址,是指针,*p.month = p->month;
5.结构数组 struct date today[100];
struct date today[] = {{1,2,3},{1,2,3}};方括号里面默认是2;
6.镶嵌结构
声明
struct point
{
int x;
int y;
};
struct rct
{
struct point p1;//前面的是数据类型,后面的是结构名称
struct point p2;
}
struct rct r ;//定义
r = (struct rct)//赋值,类型强制转换
{
{1,2},{3,4}
};