8.学过的类型:基础数据类型、指针、空类型 void、构造类型(数组、结构体)、定义类型
9.枚举类型(是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型)
C语言提供了一个种类型,这种类型的变量的取值被限定在一定的范围之内了
枚举类型的定义:
enum 枚举类型名{ 枚举值1,枚举值2,.... };
举例:
定义一个变量,保存一周的第几天
enum weekday{zhouyi,zhouer,zhousan,zhousi,zhouwu ,zhouliu,zhouri };
定义iPhone手机的颜色
关于枚举类型元素的命名习惯
enumiColor{kIcolorWhite,kIcolorBlack,kIcolorTHJ};
定义人得性别
enum Sex{kSexMan,kSexWomen,kSexYao};
//weekday iColor Sex 这些都是枚举类型
*/
#include <stdio.h>
//全局的枚举类型
enum Sex{kSexMan,kSexWomen,kSexYao};
int main(int argc, const char * argv[]) {
//定义局部的枚举类型
enum weekday{ zhouyi,zhouer,zhousan,zhousi,zhouwu,zhouliu,zhouri };
enum iColor{kIcolorWhite,kIcolorBlack,kIcolorTHJ};
return 0;
}
10.枚举类型变量
枚举类型的变量
枚举类型的变量的定义
enumiColor{kIcolorWhite,kIcolorBlack,kIcolorTHJ};
1)先定义枚举类型,再定义枚举变量
enum 枚举类型名 枚举变量名列表;
enum iColor iPhoneColor; //iPhoneColor的取值是有要求的
//取值应为kIcolorWhite,kIcolorBlack,kIcolorTHJ中的其中一个
2)定义枚举类型的同时,定义变量
enum Sex{kSexMan,kSexWomen,kSexYao}isex;
*/
#include <stdio.h>
//默认值 0 1 2
//手动赋值 5 6 7
enumiColor{kIcolorWhite=5,kIcolorBlack,kIcolorTHJ};
int main(int argc, const char * argv[]) {
//1、枚举类型变量的定义
enum iColor iPhoneColor; //iPhoneColor的取值是有要求的
//取值应为kIcolorWhite,kIcolorBlack,kIcolorTHJ中的其中一个
enum Sex{kSexMan,kSexWomen,kSexYao} isex;
//2、枚举类型变量的初始化
//给枚举变量赋值
iPhoneColor = kIcolorTHJ;
isex = kSexYao;
//3、枚举变量如何使用
printf("%d\n",iPhoneColor);
//4、枚举变量的值
//枚举类型定义完成以后,系统会自动给枚举的每个元素都会赋值一个整形的初值
// 默认初值:从第一个元素开始值为0,以后个元素的值,是上一个元素的值+1,
//
//5、应用
struct Person{
char *name;
//char sex; //'z'
enum Sex isex; //kSexMan,kSexWomen,kSexYao
};
//6、不按套路的出牌
iPhoneColor = 3.4; //尽量不要这么干
printf("%d\n",iPhoneColor);
return 0;
}
11.typedef关键字:
typedef就是给数据类型取“别名”
定义一般类型:
typedef 原类型名 新类型名;
其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。
有时也可用宏定义来代替typedef的功能,但是宏定义是预处理完成的,而typedef则是在编译时完成的,后者更为灵活。
#include <stdio.h>
int main(int argc, const char * argv[]) {
//typedef就给给别人起外号
int a = 10;
printf("%d\n",a+10);
//给int起个别名
typedef int MALATANG; //typedef语句要以分号结束
//用别名定义了一个新的变量 qiezi
MALATANG qiezi = 3;
MALATANG *p = &qiezi;
printf("%d\n",qiezi+100);
printf("%d\n",*p);
return 0;
}
12.typedef的使用方法:
#include <stdio.h>
int sum(int a,int b){
return a+b;
}
int jian(int a,int b){
return a-b;
}
int main(int argc, const char * argv[]) { |