1. 基本内置类型
C++基本内置类型包含算术类型(arithmetic type)和空类型(void)
算术类型,包括整型和浮点型
整型有:bool,char,wchar_t,char16_t, char32_t, short, int, long, long long
浮点型:float, double, long double,一般使用double作为变量类型,因为float只有7个有效位,精度太小
其中下列整型可以加unsigned组合成无符号类型:int,short,long以及long long
字符型比较特殊,分为:char,signed char和unsigned char。char和signed char并非同一类型。
指定字面值类型,可以通过前缀或后缀指定字面值类型:
前缀 | 含义 | 类型 |
u | Unicode 16字符 | char16_t |
U | Unicode 32字符 | char32_t |
L | 宽字符 | wchar_t |
u8 | UTF-8 | char |
后缀 | 最小匹配类型 |
u or U | unsigned |
l or L | long |
ll or LL | long long |
f or F | float |
l or L | long double |
2. 变量
变量初始化不是赋值,初始化是创建变量时赋予一个初始值,对于一个int类型变量,以下方式均可初始化:
int temp = 0;
int temp = {0};
int temp{0};
int temp(0);
其中使用{}初始化的形式叫列表初始化(list initialization)。
默认初始化
如果定义变量时没有明确给定初值,它会被默认初始化成默认值,默认值到底是什么取决于变量类型及其位置。
默认值取决于变量比较好理解,比如int型,默认值是0,string类型默认值是空字符串。
位置确定初始值的例子还是int,位于函数体外部的int变量会被默认初始化为0,但是位于函数体内部的int变量将不被初始化(uninitialized),它的值是为定义的,此时最好不要使用。
变量声明和定义
变量只能被定义一次,但可以被多次声明。
3. 复合类型
C++有多种复合类型:引用、指针、结构(struct)、类(class)等
前缀 | 含义 | 类型 |
u | Unicode 16字符 | char16_t |
U | Unicode 32字符 | char32_t |
L | 宽字符 | wchar_t |
u8 | UTF-8 | char |