1)枚举类型介绍及定义
a、枚举类型
①枚举类型定义的一般形式:
enum 枚举类型名{
值1,
值2,
...
值n
};
在枚举值中应罗列出所有可用值。这些值也称为枚举单元。
枚举类型是一种基本类型,而不是一种构造类型,因为它不能再分解任何基本类型。。
②例如:定义一个枚举变量,保存一周天数
2)枚举变量的定义和使用
a、枚举类型的变量的定义
定义:
①先定义枚举类型,在定义枚举类型的变量
enum 枚举类型名 枚举变量名列表;
②定义枚举类型的同时,定义变量
enum Sex{kSexMan,kSexWomen,kSexYao} iSex;
b、枚举类型的初始化
①赋值:
enum Sex iSex;//定义枚举变量
iSex=kSexMan;//给枚举变量赋值
c、枚举变量的使用
printf("%d\n",iSex);
d、枚举变量的值
枚举的元素的值:第一个元素的值默认为0,一次递增+1;
如:
kSexMan=1,kSexWomen=2,kSexYao=3
enum Sex{kSexMan ,kSexWomen ,kSexYao};
注意:枚举类型定义以后,系统会自动给枚举的每个元素都会赋值一个整形的初值。
默认初值:从第一个元素开始值为0,以后每个元素的值,都是上一个元素的值+1
3)typedef关键字介绍
回顾:之前学习的类型:
基本数据类型、空类型、构造类型、指针类型、定义类型
a、typedef关键字的概念及语法格式
①概念和语法
C语言不仅提供了丰富的数据类型,而且还允许有用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。
一般形式:
typedef 原类型名 新类型名
其中原类型名种含有定义部分,新类型名一般用大写表示,以便区别。
有时也可用宏定义来代替typedef的功能,但是宏定义是由预处理来完成的,而typedef则是在编译时完成的,后者会更加灵活。
b、typedef的使用方法
①基本数据类型
②用在数组,给数组起别名
③用在结构体、给结构体起别名
a)给结构体起个别名法一
//给struct Person 起个别名 P
typedef struct Person P;
p p2={"lisi",18};
b)给结构体起个别名法二.
typedef struct Car{
int lun;
int speed;
}MYCAR;//表示把结构体起个别名 MYCAR
MYCAR car1={2,200};
c)给匿名的结构体起个别名
typedef struct{
int screenSize;
int ram;
}IPHONE;
//用新类型定义结构体变量
IPHONE iphone7={10,8};
④用在枚举类型上,给枚举类型起别名
a)typedef enum Sex{kSexMan,kSexWomen,kSexYao} ISEX;//ISEX是别名
b)typedef enum {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}WEEKDAY; //WEEKDAY是别名
c)typedef enum Sex S;//给枚举类型起个别名S
S s1,s2;
s1=kSexYao;
⑤给函数指针起别名
int sum(int a,int b){
return a+b;
}
int div(int a,int b){
return a-b;
}
//函数指针:指向函数的指针
int (*p)(int,int);//函数指针
typedef int (*FUN)(int,int);//FUN是一个别名
FUN f1,f2;
f1=sum;
printf("%d\n",f1(1,5));//输出结果为6
|
|