基本类型 (C++)
C++ 中的基础类型分为三个类别:整数、浮动和 void。 整数类型能够处理整数。 浮动类型能够指定具有小数部分的值。
void 类型描述了值的空集。 void 类型的变量无法指定 - 它主要用于声明不返回值的函数或用于声明指向非类型化或任意类型化数据的一般指针。 任何表达式都可以显示或强制转换为类型 void。 但是,此类表达式仅限于下列用途:
表达式语句。(有关详细信息,请参阅表达式。)
逗号运算符的左操作数。(有关详细信息,请参阅逗号运算符。)
条件运算符 (?:) 的第二个或第三个操作数。(有关详细信息,请参阅带条件运算符的表达式。)
下表说明了类型大小的限制。 这些限制与 Microsoft 实现无关。
C++ 语言的基础类型
类别 |
类型 |
内容 |
---|---|---|
整数 |
char |
类型 char 是通常包含执行字符集的成员的整数类型 - 在 Microsoft C++ 中,这是 ASCII。 |
|
|
C++ 编译器将 char、signed char 和 unsigned char 类型的变量视为不同类型。 char 类型的变量将提升到 int,就像它们在默认情况下是 signed char 类型一样,除非使用 /J 编译选项。 在这种情况下,它们被视为 unsigned char 类型并提升为 int(没有符号扩展)。 |
|
bool |
类型 bool 是可以具有 true 或 false 这两个值之一的整数类型。 其大小未指定。 |
|
short |
类型 short int(或 short)是大于或等于类型 char 的大小但小于或等于类型 int 的大小的整型类型。 |
|
|
类型 short 的对象可声明为 signed short 或 unsigned short。 Signed short 是 short 的同义词。 |
|
int |
类型 int 是大于或等于类型 short int 的大小但小于或等于类型 long 的大小的整数类型。 |
|
|
类型 int 对象可声明为 signed int 或 unsigned int。 Signed 是 intint 的同义词。 |
|
__intn |
固定大小整数,其中 n 是大小,以整数变量的位数为单位。 n 的值可以是 8、16、32 或 64。(__intn 是一个 Microsoft 特定关键字。) |
|
long |
类型 long(或 long int)是大于或等于类型 int 的大小整数类型。 |
|
|
类型 long 的对象可声明为 signed long 或 unsigned long。 Signed long 是 long 的同义词。 |
long long |
大于 unsigned long。 |
|
类型 long long 的对象可声明为 signed long long 或 unsigned long long。 Signed long long 是 long long 的同义词。 |
||
浮动 |
float |
类型 float 是最小的浮动类型。 |
|
double |
类型 double 是大于或等于类型 float 的大小但小于或等于类型 long double 的大小的浮动类型。 |
|
long double1 |
类型 long double 是等于类型 double 的浮动类型。 |
宽字符 |
__wchar_t |
__wchar_t 的变量指定宽字符或多字节字符类型。 默认情况下,wchar_t 是本机类型,但可以使用 /Zc: wchar_t- 使 wchar_t 成为 unsigned short 的 typedef。 在字符或字符串常量前使用 L 前缀可指定宽字符类型的常量。 |
1 long double 和 double 的表示形式相同。 但是,long double 和 double 是不同的类型。
Microsoft 专用
下表列出了 Microsoft C++ 中的基础类型所需的存储量。
基础类型的大小
类型 |
大小 |
---|---|
bool |
1 个字节 |
char、unsigned char、signed char |
1 个字节 |
short、unsigned short |
2 个字节 |
int, unsigned int |
4 个字节 |
__intn |
8、16、32、64 或 128 位,具体取决于 n 的值。__intn 是 Microsoft 特定的。 |
long、unsigned long |
4 个字节 |
float |
4 个字节 |
double |
8 个字节 |
long double1 |
8 个字节 |
long long |
等效于 __int64。 |
1 long double 和 double 的表示形式相同。 但是,long double 和 double 是不同的类型。
结束 Microsoft 专用
有关每个类型的值的范围的摘要,请参阅数据类型范围。
有关类型转换的详细信息,请参阅标准转换。