基础类型(C++)
C++ 中的基本类型可分为三个类别:integral、floating 和 void。 整型能够处理整数。 浮点类型能够指定具有小数部分的值。
void 类型描述了该值的空集。 类型 void 的变量不能被指定,主要用于声明不返回值或声明指向非类型化的或任意类型化数据的指针的函数。 任何表达式可以显示或强制转换为类型 void。 但是,此类表达式仅限于下列用途:
表达式语句。 (有关更多信息,请参见表达式。)
逗号运算符的左操作数。 (有关更多信息,请参见逗号运算符。)
条件运算符 (? 的第二个或第三个操作数:). (有关更多信息,请参见条件运算符表达式。)
下表解释了类型大小的限制。 这些限制与 Microsoft 实现无关。
C++ 语言的基础类型
类别 |
类型 |
内容 |
---|---|---|
整数 |
char |
类型 char 通常是包含执行字符集的成员的整型,在 Microsoft C++ 中,这是 ASCII。 |
|
|
该 C++ 编译器将变量类型 char,signed char 和 unsigned char 视为不同类型。 类型为 char 的变量将被提升到 int 默认情况下,除非使用编译选项 /J 假设类型 签名 char。 在这种情况下他们被视为类型 unsigned char 并提升为 int,没有符号扩展。 |
|
bool |
类型 bool 是可以具有两个值 true 或 false之一的整型。 其大小未指定。 |
|
short |
类型 short int(或只是 short)大于或等于 char范围的整型类型,短于或等于类型 int 的大小。 |
|
|
类型 short 的对象能被声明为 有符号 short 或者 无符号 short。 Signed short 是 short的同义词。 |
|
int |
类型 int 大于或等于 short int 的大小,短于或等于类型 long 的大小。 |
|
|
类型 int 对象可被声明为 有符号 int 或 unsigned int。 Signed 是 intint 的同义词。 |
|
__intn |
大小的整数,其中 n 是以位为单位整数变量大小。 n 的值可以是 8、6、32 或 64。 (__intn 是 Microsoft 专用关键字. |
|
long |
类型 long(或 long int)大于或等于 int 整型类型的大小。 |
|
|
类型 long 的对象能被声明为 有符号 long 或 unsigned long。 Signed long 是 long 的同义词。 |
long long |
大于无符号 long。 |
|
类型 long long 的对象能被声明为 有符号 long long 或 unsigned long。 Signed long long 是 long long 的同义词。 |
||
浮动 |
float |
类型 浮动 是最小的浮点数的类型。 |
|
double |
类型双 是一种浮点类型是大于或等于输入的 浮点型,但小于或等于类型大小的 长双。 |
|
long double1 |
类型 long double 是相等键入 double的浮动类型。 |
(宽字符) |
__wchar_t |
__wchar_t 的变量指定宽字符或多字节字符类型。 默认情况下,wchar_t 是本机类型,但可以使用 /Zc: wchar_t- 为 unsigned short 创建 wchar_ttypedef。 在字符或字符串常数前使用 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 专用
关于每种类型值范围的摘要,请参见 Data Type Ranges(数据类型范围)。
有关类型转换的更多信息,请参见标准转换。