C语言中的数据类型分为:基本类型,枚举类型,void类型,派生类型
基本类型又分为整数类型和浮点类型。
整数类型的有char,int,short,long。同时我们需要注意这几种类型又分为有符号和无符号的。无符号的就是在前面加上了一个unsigned关键字。
浮点型有float,double,long double.
我们可以用sizeof()这个方法来获取这个该类型所占的字节长度,例:sizeof(int)
也可以用该类型声明的变量来,例:int a = 10; sizeof(a); 这里获取的是a这个变量的类型所占的字节长度,并不是a变量的值。
最主要的一点是C语言没有布尔(bool)类型,如果要判断是真还是假,那么非0为真 0为假。
枚举类型:
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。一般用来列举有限的数据取值。比如星期、月份或者有限特殊类型等等。
枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。
枚举的特点:①枚举元素的类型为整型(int) ②第一个元素默认值为0,后面元素依次累加。 ③可以指定任意位置元素的值,其后的值在他的基础上进行累加。
枚举类型的定义形式为:enum typeName {valueName1,valueName2,valueName3…};
enum是一个关键字,专门用来定义枚举类型;typeName是枚举类型的名称;valueName是每个值对用的名字列表。
注意:valueName这些值每个都是常量,不能对它们进行赋值。而且就算是不同的枚举类型也不能存在同名的枚举成员。
void类型(空类型)有以下三种情况:
①函数返回为空。例如: void func(int i);
②函数参数为空。例如: int returnValue(void); //此处的void可以省略不写
③指针指向为空。例如:void *p; //定义一个空类型的p指针变量
C语言中的类型转换:
1、一种是隐式类型转换。在遇到不同类型变量进行计算时,编译器会自动进行类型转换。这可能会导致数据失真,或者精度降低。
编译器首先执行整数提升,如果操作数类型不同,则它们会被转换为下列层次中出现的最高层次的类型:
char->short->int->long->float->double
2、强制类型转换是程序员明确提出的、需要通过特定格式的代码来指明的一种类型转换。换句话说,自动类型转换不需要程序员干预,强制类型转换必须有程序员干预。例如:float f = 10.001; int i = (int)f;



