浮点型
在C语言中浮点类型包括:
(1)各种长度的浮点类型:float、double、long double
(2)各种长度的复数类型:float_complex、double_complex、long double_complex
(3)各种长度的虚数类型:float_imaginary、double_imaginary、long double_imaginary
抽象的讲float型的值域是全体实数。但是由于计算机表示方面的原因,实际的值域只能是实数的一个子集。实数在计算机内部的表示通常是不精确的。
浮点的运算要特别的注意精度损失,例如:
(1)两个几乎相等的值相减,或两个绝对值几乎相等、符号相反的值相加,会引起很大的误差。在这种情况下,高位的数字互相抵消了,从而丢失了一些或者全部有效数字。
(2)若除数的绝对值很小,除法的结果很有可能溢出。应该避免0或者接近于0的值作为除数。
(3)避免两个浮点数相等或者不相等的比较。由于计算机表示方面的近似性,会使得本来应该相等的两个值不等。
(4)浮点运算可能会产生积累误差。
整数类型
在C中的整数类型,包括各种长度的带符号与不带符号的整数类型(short、int、long、longlong、unsigen、signed等以及它们的组合)
抽象的讲,整数类型的值域为全体整数。但由于计算机的表示方面的原因,其实际的值域只能是整数的一个子集。
字符类型
字符类型的常量就是单个字符,它的值域是一个由实现定义的字符集。、
在C中把字符看成整数类型,其整数值是在计算机系统字符集中的编码
在C中,所有关于整数类型的运算,定义,自然也都适合于字符类型
布尔类型
bool类型是一种简单的类型,属于整数类型(bool类型是C99引进的,在C99之前的标准中没有bool类型,而以整数类型模拟bool类型,“0”表示“假”,“1”表示“真”)
关系运算
最基本的布尔表达式由关系运算形成。关系运算比较参与运算的两个量是否满足某一规定的关系,得到一个布尔类型值。满足的得true(真),不满足得false(假)
1.关系比较运算
定义了值的顺序后,就可以对两个值的大小进行比较,称为比较关系运算。在C语言中有4个关系运算符可用来对标量类型进行关系运算
< (小于) >(大于) <=(小于等于) >=(大于等于)
2.判等比较运算
还可以对两个值进行相等关系的比较,称为进行判等比较运算。在C语言中有2个关系运算符可用来对标量类型进行判等比较运算
==(等于) !=(不等于)
布尔运算
bool类型仅有两个值:false(假)和true(真)。可施于布尔类型数据上的运算称为“布尔运算”或“逻辑运算”。
!(非) &&(与) ||(或)
(1)!为取反运算。true的反就是false,false的反就是true。
(2)&&为且
(3)||为或
枚举类型
例如:enum tsort{car,truck,bus} sort;用来表示汽车的种类,这是枚举类型。枚举类型是一种简单类型,属于整数类型。
枚举类型表示相互独立的元素的集合
1.枚举类型的定义
枚举类型通过枚举表示值的标识符确定一个类型的值的有序集合。形式如何
enum{id,id,id.....}
enum 枚举标签{id,id,di ........}
其中:
(1)枚举标签是一个标识符,用于标识该枚举类型
(2)每一个标识符id都是一个枚举常量,也是相应枚举类型中的一个值
2.枚举类型的引用、枚举类型说明符
在enum后跟以枚举标签,称为“枚举类型的引用”,枚举类型的引用可以标记相应的枚举类型
枚举类型的定义和枚举类型引用统称“枚举类型说明符”。
3.枚举类型变量声明
使用枚举类型说明符可以声名枚举类型变量,例如:
enum{sunday,monday,tuesday,Thursday,friday,Saturday,Sunday} weak;
enum tcard{club,diamond,heart,spade} card
enum tomnth month
enum tcolor c1,c2
其中 week ,card,month,c1,c2为变量
4.枚举类型值
在C中把枚举类型看成整数类型,每个枚举常量对应一个整数值。在一般情况下,枚举常量表的第一个标识符对应的整数值为0,其他标识符对应前一个标识符整数值+1
当然也可以自己在声名枚举类型时,设定某些枚举常量对应的整数值。
方法是:在枚举表中的枚举常量标识符后标识上该常量对应的整数值。
enum color{red=10,yellow=red+2,green=15,blue}表示red等于10,yellow表示12,green等于15,green等于16
在C语言中,所有关于整数类型的运算定义,自然也都适用于枚举类型。
使用枚举时注意:
括在花括号内的枚举常量表中的标识符是常量。