25-本章小结
3.9 本章小结
C 有多种的数据类型。基本数据类型分为两大类:整数类型和浮点数类型。通过为类型分配的存储量以及是有符号还是无符号,区分不同的整数类型。最小的整数类型是 char ,因实现不同,可以是有符号的 char 或无符号的 char ,即 unsigned char 或 signed char 。但是,通常用 char 类型表示小整数时才这样显式说明。其他整数类型有 short 、 int 、 long 和 long long 类型。 C 规定,后面的类型不能小于前面的类型。上述都是有符号类型,但也可以使用 unsigned 关键字创建相应的无符号类型: unsigned short 、 unsigned int 、 unsigned long 和 unsigned long long 。或者,在类型名前加上 signed 修饰符显式表明该类型是有符号类型。最后, _Bool 类型是一种无符号类型,可存储 0 或 1 ,分别代表 false 和 true 。
浮点类型有 3 种: float 、 double 和 C90 新增的 long double 。后面的类型应大于或等于前面的类型。有些实现可选择支持复数类型和虚数类型,通过关键字 _Complex 和 _Imaginary 与浮点类型的关键字组合(如, double _Complex 类型和 float _Imaginary 类型)来表示这些类型。
整数可以表示为十进制、八进制或十六进制。 0 前缀表示八进制数, 0x 或 0X 前缀表示十六进制数。例如, 32 、 040 、 0x20 分别以十进制、八进制、十六进制表示同一个值。 l 或 L 后缀表明该值是 long 类型, ll 或 LL 后缀表明该值是 long long 类型。
在C语言中,直接表示一个字符常量的方法是:把该字符用单引号括起来,如 'Q' 、 '8' 和 '$' 。C语言的转义序列(如, '\n' )表示某些非打印字符。另外,还可以在八进制或十六进制数前加上一个反斜杠(如, '\007' ),表示 ASCII 码中的一个字符。
浮点数可写成固定小数点的形式(如, 9393.912 )或指数形式(如, 7.38E10 )。 C99 和 C11 提供了第 3 种指数表示法,即用十六进制数和 2 的幂来表示(如, 0xa.1fp10 )。
printf() 函数根据转换说明打印各种类型的值。转换说明最简单的形式由一个百分号( % )和一个转换字符组成,如 %d 或 %f 。