6.1 枚举
{cat\_tips\_E}用枚举优化常量符号化,变得更加方便{/cat\_tips\_E}
- enum 枚举类型名字{名字0,...,名字n};
- Example 01:
#include <stdio.h>
enum color{
red,
yellow,
green
};
void f(enum color c);
int main(){
enum color t = red;
scanf("%d",&t);
f(t);
return 0;
}
void f(enum color c){
printf("%d\n",c);
}
{cat\_tips\_E}枚举量{/cat\_tips\_E}
- 声明枚举量的时候可以指定值
enum color{
red = 1,
yellow,
green = 5
};
枚举只是int
实际上很少用
6.2 结构体
{cat\_tips\_E}声明结构类型{/cat\_tips\_E}
- Example 01:
#include <stdio.h>
struct date{
int month;
int day;
int year;
};
int main(){
struct date today;
today.month = 03;
today.day = 05;
today.year = 2020;
printf("%i-%i-%i",today.year,today.month,today.day);
//%i表示有符号十进制整数
return 0;
}
{cat\_tips\_E}声明结构的形式{/cat\_tips\_E}
- 形式一:
struct point{
int x;
int y;
};
struct point p1,p2; // p1和p2都是point里面有x和y的值
- 形式二:
struct{
int x;
int y;
}p1,p2;// p1和p2都是一种无名结构,里面有x和y
- 形式三:(推荐)
struct point{
int x;
int y;
}p1,p2;
// p1和p2都是point里面有x和y的值
{cat\_tips\_E}结构变量{/cat\_tips\_E}
struct date today;
today.month = 03;
today.day = 05;
today.year = 2020;

{cat\_tips\_E}结构体的初始化{/cat\_tips\_E}
struct date today = {03,05,2020};
{cat\_tips\_E}结构成员{/cat\_tips\_E}
today.day
{cat\_tips\_E}结构运算{/cat\_tips\_E}
- 赋值、取地址、传递函数参数
- p1 = (struct point){5,10}; //相当于p1.x = 5,p1.y = 10;
- p1 = p2; //相当于p1.x = p2.x; p1.y = p2.y;
{cat\_tips\_E}结构可作为函数参数{/cat\_tips\_E}
bool isLeap(struct date d);
{cat\_tips\_E}结构指针作为参数{/cat\_tips\_E}
- 指向结构的指针
struct date{
int month;
int day;
int year;
}myday;
struct date *p = &myday;
(*p).month = 12;
p -> month = 12;
用->表示指针所指的结构变量中的成员
{cat\_tips\_E}结构数组{/cat\_tips\_E}
struct date dates[100];
struct date dates[] = {{4,5,2005},{2,4,2005}};
{cat\_tips\_E}结构中的结构{/cat\_tips\_E}
struct dateAndTime{
struct date sdate;
struct time stime;
}
- Example 01:

{cat\_tips\_E}Typedef{/cat\_tips\_E}
- typedef 自定义数据类型

声明:本文由 公爵(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。