c++ 数据类型
c++
基本类型
bool 类型
类型 |
含义 |
最小尺寸 |
取值 |
bool |
布尔类型 |
未定义 |
true, false |
字符类型
类型 |
含义 |
最小尺寸 |
取值 |
char |
字符 |
8位 |
|
signed char |
字符 |
8位 |
|
unsigned char |
字符 |
8位 |
|
wchar_t |
宽字符 |
16位 |
|
char16_t |
Unicode 字符 |
16位 |
|
char32_t |
Unicode 字符 |
32位 |
|
整型
类型 |
含义 |
最小尺寸 |
取值 |
short |
短整型 |
16位 |
|
int |
整型 |
16位 |
|
long |
长整型 |
32位 |
|
unsigned short |
短整型 |
16位 |
|
unsigned [int] |
整型 |
16位 |
|
unsigned long |
长整型 |
32位 |
|
long long |
长整型 |
32位 |
|
浮点类型
类型 |
含义 |
最小尺寸 |
取值 |
float |
单精度浮点数 |
6位有效数字 |
|
double |
双精度浮点数 |
10位有效数字 |
|
long double |
扩展精度浮点数 |
10位有效数字 |
|
一个char的大小和一个机器字节一样; 一个int至少和short一样大,一个long至少和int一样大,一个long long至少和long一样大。
- 使用int执行整数运算。 如果超出,选用long long
- 算术表达式中不要使用char或bool,只有在存放字符或布尔值时才使用它们。
- 执行浮点数运算选用double
类型别名
typedef type new_type; # new_type 与 type是同义词
using new_type = type; # 别名声明, new_type 是type的同义词
- 声明中可以使用类型修饰符,即可以对复合类型进行命名别名
- new_type 与 type 是等价的,只要type出现的地方,就可以使用new_type。
auto 类型说明符
与原有特定类型的说明符(int,double等)不同,auto让编译器通过初始值来推算变量的类型。这使得auto定义的变量必须具有初始值。
decltype 类型指示符
decltype 作用是选择并返回操作数的数据类型
字面值常量
分为:整型字面值,浮点型字面值,字符字面值,字符串字面值,转义序列,布尔字面值,指针字面值, 可以通过前缀和后缀来指定字面值常量的类型。
- 十进制整型字面值的类型是int,long,long long中尺寸最小的那个
- 浮点字面值是double
- 字符字面值为 char
- 字符串 = 字符数组 + '\0'
- 布尔字面值: true or false
- 指针字面值: nullptr
转义序列
后缀与前缀
字符和字符串前缀 |
类型 |
含义 |
u |
char16_t |
Unicode 16字符 |
U |
char32_t |
Unicode 32字符 |
L |
wchar_t |
宽字符 |
u8 |
char |
UTF-8(仅用于字符串字面常量) |
整型后缀 |
类型 |
u or U |
unsigned |
l or L |
long |
ll or LL |
long long |
浮点型后缀 |
类型 |
f or F |
float |
l or L |
long double |
变量
默认初始化
- 内置类型定义于任何函数体之外的变量初始化为0
- 定义于函数体内的内置类型的对象如果没有初始化,则其值未定义。
- 类的对象如果没有显式初始化,则其值由类决定。
变量的声明与定义
- 声明规定了变量的类型和名字
- 定义不仅规定了变量的类型和名字,还申请存储空间,并可能会为变量赋一个值。