为什么
数据不能直接保存到计算机中, 必须转换为二进制并编码.
主要分类
- 数类
- 字母符号类
- 其它
表示范围
由于计算机内存空间并非无穷无尽, 变量能够使用的空间必须限定.
由于 C 语言不支持自动改变变量存储的数据类型. 变量不能随意更改使用的空间.
所以当变量一经声明或定义, 其能够表达的数据范围已经确定. 要留意范围超出的情况导致的结果不如预期.
为什么变量使用空间限定就一定导致其数据类型的范围会被确定. 涉及到变量的本质相关知识.
整数
int
- integer - 整数 范围: -2147483648 ~ 2147483647
long int
范围: -2147483648 ~ 2147483647
short int
范围: -32768~32767
long long int
范围: -9223372036854775808 ~ 9223372036854775807
限定长短的:
long
short
long long
限定符号的:
signed
特殊强调作用, 一般不用;unsigned
无符号
推荐, 如果确定使用 32 位整数存储数据(即数据范围确定在-2147483648 ~ 2147483647之间)则应该使用 long int
类型而不是 int
类型
同类型数据间的运算结果不会转换为其他类型数据.
隐式类型转换: int a = 3.234;
显示类型转换(强制类型转换): (数据类型)值 e.g. (int)3.234
浮点数
float
: 单精度浮点数 32位浮点数
double
: 双精度浮点数 64位浮点数
long double
: 128 位浮点数
推荐, 如果没有必要, 不要使用float数据类型, 尽量都使用double数据类型. 以防关键数据被舍弃
字面量
1.23
小数
3.14e2
类科学记数法的指数表达形式, 表示
3.14
×
1
0
2
3.14\times10^2
3.14×102
不同类数据相互运算, 遵从信息量少向信息量多方向转换.
字符
char
- character 字符 采用 ASCII 编码方案
字面量
‘a’ : 有单引号包裹里面是一个字母
‘\n’ : 由单引号包裹, 里面是一个反斜线开头, 后跟一个字母或符号 - 转义字符. \ 被称为 转义符号.
‘\0oo’: 有单引号包裹, 里面是一个反斜线开头, 后跟一个0, 后跟若干个八进制数字 - 表示这个八进制数.
‘\xhh’: 有单引号包裹, 里面是一个反斜线开头, 后跟一个x, 后跟若干个十六进制数字 - 表示这个十六进制数.
e.g.
'\x12' - 十六进制的 12 - 十进制的 18
'\033' - 八进制的 33 - 十进制的 27
“skdfjlsdkjf” 由双引号包裹, 里面是若干个字母符号, 表示字符串常量, 没有对应的变量数据类型.