5 数据类型
- 支持强类型:尽早发现程序中的简单错误,面向底层
- 反对强类型:关注事物逻辑
- 整型:char、short、int、long、long long——%d、%ld
- 浮点型:float、double、long double——%lf
- 逻辑类型:bool
- 指针:自定义
- sizeof(int):所占空间大小为4字节
- sizeof(a++):a++不做
- sizeof(a+1.0):8字节,因为变成了double类型
- sizeof(long):在64位下8字节,32位下4字节,int、long与编译器和CPU有关
- 1个字节可以表示00000000~11111111:0~255
- 负数表示用补码:11111111~10000000代表-1~-128,00000001~01111111代表1~127
- char占一字节,可以表示-128~127
- 越界:11111111+1 —> 100000000 = 0
- int:%d、unsigned:%u、long long:%ld、unsigned long long:%lu、八进制:%o、十六进制:%x
- 0开头:八进制、0x开头:十六进制
- CPU字长为32位或者64位,无特别需要用int,一次内存读写为一个int,一次计算也是一个int。
- “%.3f”:小数点后三位
- “%.30f”:-0.0049并不是精确的-0.0049,计算机内部的浮点数是离散的,一般进行四舍五入
- 正是/0.0 = inf,负数/0.0 = -inf,0.0/0.0 = nan,正数/0 无定义
- 浮点数在计算时由专用硬件实现
- 没有特别需要用double
- ASCII码:’0’ = 48, ‘9’ = 57, ’ ’ = 32, a+’a’-‘A’实现小写转大写
- 转义字符:\n换行,\b回退一格,\t到下一个表格位,\反斜杠本身,\r回车
- short(32768) = -32768
- char(32768) = 0
- 强制类型转换优先于四则运算
- double不能用于switch-case的判断变量
- bool类型:#include