数据与C
接上一篇
整数
整数是没有小数部分的数。计算机以二进制数字存储整数。
比如整数7以二进制写诗111,要在8位字节中存储数字,需要把前五位都设置成0,后3位设置成1.
0 0 0 0 0 1 1 1 字长8位 - - - - - 2² 2¹ 2º - - - - - - 4 2 1 整数7
浮点数
在一个值后面加上一个小数点,该值就成为一个浮点值。所以,7是整数,7.00是浮点数。 + 整数没有小数部分,浮点数有小数部分。 + 浮点数可以表示的范围比整数大。 + 对于一些算数运算(如,两个很大的数相减),浮点数损失的精度更多。 + 因为在任何区间内(如1.0到2.0之间)都存在无穷多个实数,所以计算机的浮点数不能表示区间内所有的值。浮点数通常只是实际值的近似值。 + 过去,浮点运算比整数运算慢。不过,现在许多CPU都包含浮点处理器,缩小了速度上的差距。
C语言基本类型
整数类型
- int类型
- short int类型简写short
- long int或者long。与int类似,long是由符号类型。
- long long int或long long
- unsigned int或unsigned只用于非负值的场合。
字符char类型
char类型用于存储字符(字母或标点符号),但是从技术层面看,char是整数类型。
计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。
转义序列
转义序列 | 含义 |
---|---|
\a | 警报(ANSI C) |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ | 反斜杠(\) |
\’ | 单引号 |
\” | 双引号 |
\? | 问号 |
\0oo | 八进制(oo必须使有效的八进制数,即每个o可表示0~7中的一个数) |
\xhh | 十六进制(hh必须使有效的十六进制数,即每个h可表示0~f中的一个数) |
从C90开始,不仅可以用十进制、八进制形式表示字符常量,C语言还提供了第三种选择——用十六进制形式表示字符常量,即反斜杠后面跟一个x或X,再加上1~3位十六进制数字。
整型常量的例子 | |||
---|---|---|---|
类型 | 十六进制 | 八进制 | 十进制 |
char | \0x41 | \0101 | N.A. |
int | 0x41 | 0101 | 65 |
unsigned int | 0x41u | 0101u | 65u |
long | 0x41L | 0101L | 65L |
unsigned long | 0x41UL | 0101UL | 65UL |
long long | 0x41LL | 0101LL | 65LL |
unsigned long long | 0x41ULL | 0101ULL | 65ULL |
_Bool类型
用于表示布尔值,即逻辑值true和false。
可移植类型:stdint.h和inttypes.h
float、double和long double
复数和虚数类型
其他类型
C语言还有一些从基本类型衍生的其他类型,包括数组、指针、结构和联合。
类型大小
上一页 C Primer Plus阅读学习(一)
下一页 C Primer Plus阅读学习(三)