[关闭]
@songying 2019-01-16T19:29:25.000000Z 字数 1240 阅读 952

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

类型别名

  1. typedef type new_type; # new_type 与 type是同义词
  2. using new_type = type; # 别名声明, new_type 是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
  • 定义于函数体内的内置类型的对象如果没有初始化,则其值未定义。
  • 类的对象如果没有显式初始化,则其值由类决定。

变量的声明与定义

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注