基本数据类型:算术类型和空类型
算术类型包括整型和浮点型
类型 | 含义 | 最小尺寸 |
---|---|---|
bool | 布尔类型 | 未定义 |
char | 字符 | 8位 |
wchar_t | 宽字符 | 16位 |
char16_t | Unicode字符 | 16位 |
char32_t | Unicode字符 | 32位 |
short | 短整型 | 16位 |
int | 整形 | 16位 |
long | 长整型 | 32位 |
long?long | 长整型 | 64位 |
float | 单精度浮点数 | 6位有效数字 |
double | 双精度浮点数 | 10位有效数字 |
long?double | 拓展精度浮点数 | 10位有效数字 |
care:
bool值为true/false
int、short、long、long?long都是带符号的,只要在前面加上unsigned就可以得到无符号类型。
字符型则分为三类:char、signed?char、unsigned?char。char≠signed?char,char是否带字符由系统决定。
当程序使用一种类型而其实对象应该是另外一种类型时,程序回自动进行类型转换。
????
care:
将一个非布尔类型的算术值赋值给布尔类型时,若为0便转化为false,否则都为true。
将一个布尔类型值赋值给非布尔类型时,若为false则转化为0,若为true则转换为1。
将一个算术值赋值给无符号类型,且超过其的范围,结果将会是算术值对无符号类型数值总数取模后的余数。
以O开头的整数代表八进制数,以Ox/OX开头的整数代表十六进制。
以小数/以科学计数法表示的指数,其中指数部分用E/e标识
eg:3.14159???3.14159E0???0.???0e0????.001
用但应好扣起来的称为char型字面值,双引号括起来的零个/多个字符构成字符串型字面值。
care:字符串字面值的类型其实是常量字符构成的数组,编辑器会在每个字符串的结尾处添加一个空字符(‘\0‘),所以字符串字面值的实际长度要+1。
不可打印的字符和在C++中有特殊含义的字符
若要使用这些字符则需要用到转义序列,以反斜线为开始(\)
care:需要注意的是转移序列在程序中是被当作字符来使用的
换行符 | \n | 横向制表符 | \t | 抱紧(响铃)符 | \a |
---|---|---|---|---|---|
纵向制表符 | ?\v |
退格符 | \b |
双引号 | \" |
反斜线 | \\ |
问号 | \? |
单引号 | \‘ |
回车符 | \r |
进纸符 | ?\f |
通过添加前缀/后缀,改变整型、浮点型的字符字面值的默认类型
前缀 | 含义 | 类型 |
---|---|---|
u | Unicode | 16字符 |
U | Unicode | 32字符 |
L | 宽字符 | wchar_t |
u8 | UTF-8 | char |
后缀 | 最小匹配类型 |
---|---|
u/U | unsigned |
l/L | long |
ll/LL | long?long |
后缀 | 类型 |
---|---|
f/F | float |
l/L | long?double |
《C++ primer》
原文:https://www.cnblogs.com/halfsugar-ss/p/13510213.html