内置类型,由编译器规定,不在任何头文件中,分为三种主要类型:整型、浮点型和void。
void类型
void
主要用于声明无返回值的函数、声明指向任意类型化数据的指针或用于以下类型的表达式:
- 表达式语句
- 逗号运算符的左操作值
- 条件运算符的第二或第三个操作数
第三种情况举例:
for(auto i : {1, 2, 3}){
void;
}
nullptr
c++中的空指针,可以被转化为任何指针类型,比NULL
和0
更加泛用。
布尔类型
布尔类型的值共有true
和false
两种,数值分别是1
和0
。布尔类型的大小根据不同的编译器有不同的大小,如在微软的MSVC
编译器中,布尔类型的大小为1字节,和char
一样大小。一般情况下,编译器认为数值为0
为false
,其他数值均为true
。
字符类型
char
,一字节,可以实现基本的字符集,也就是ASCII码和拓展。编译器认为signed char
和unsigned char
是不一样的。
wchar_t
是c++为了国际化增加的字符类型,可以认为是为了支持unicode码。为了让编译器识别为wchar_t类型的字符,需要在其前面加L
。如:
wchar_t utfstr[] = L"你好,世界!";
char8_t
用于UTF-8字符集。
char16_t
用于UTF-16字符集。
char32_t
用于UTF-32字符集。
浮点类型
float
32位,有23位有效数。
double
64位,有52位有效数。
long double
标准未规定大小,只说要大于等于double
。
整数类型
int
为默认的整数类型。
符号修饰符signed
和unsigned
确定变量可不可以储存负值。
大小修饰符short
、long
和long long
确定int
的宽度,int
默认32位,short
为16位。
指定了符号修饰符或大小修饰符后,int
可以省略不写。
整数类型同义字
同一行下的编译器认为是同一类型:
-
short
short int
signed short int
signed short
-
unsigned short
unsigned short int
-
int
signed
signed int
-
unsigned int
unsigned
-
long
long int
signed long
signed long int
-
unsigned long
unsigned long int
-
long long
long long int
signed long long
signed long long int
-
unsigned long long
unsigned long long int
内置类型的大小
1字节
bool
,char
, char8_t
, unsigned char
, signed char
2字节
char16_t
, short
, unsigned short
, wchar_t
3字节
char32_t
, float
, int
, unsigned int
, long
, unsigned long
4字节
double
, long double
, long long
, unsigned long long