📅  最后修改于: 2023-12-03 15:13:45.671000             🧑  作者: Mango
C++是一种强类型语言,数据类型在编程中起着非常重要的作用。本文将介绍C++中的数据类型范围及其宏定义。
在C++中,整数类型有以下几种:
| 数据类型 | 字节数 | 范围 | | --------- | ------ | ----------------------------------------- | | int | 4 | -2,147,483,648 ~ 2,147,483,647 | | short | 2 | -32,768 ~ 32,767 | | long | 4/8 | -2,147,483,648 ~ 2,147,483,647 / -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | | long long | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
其中,int为默认整数类型,通常占用4个字节,与机器的位数相关。
除了上述的整数类型,C++还提供了无符号整数类型,用于存储非负整数。无符号整数类型的范围为0到2^n-1,n为所占用的字节数*8。
| 数据类型 | 字节数 | 范围 | | ------------ | ------ | ---------------------- | | unsigned int | 4 | 0 ~ 4,294,967,295 | | unsigned short | 2 | 0 ~ 65,535 | | unsigned long | 4/8 | 0 ~ 4,294,967,295 / 0 ~ 18,446,744,073,709,551,615 | | unsigned long long | 8 | 0 ~ 18,446,744,073,709,551,615 |
无符号整数类型可以通过在数据类型前加上unsigned关键字来声明。
字符类型在C++中表示单个字符,其数据类型为char。char类型通常占用1个字节,用于表示ASC码表中的字符。
| 数据类型 | 字节数 | 范围 | | -------- | ------ | ---- | | char | 1 | -128 ~ 127 |
char类型可以表示ASCII码表中的所有字符,包括数字、英文字母、特殊符号等。
浮点类型在C++中表示实数,包括单精度浮点数(float)和双精度浮点数(double)。
| 数据类型 | 字节数 | 范围 | | -------- | ------ | ---------------------------------------------- | | float | 4 | 精度为6位有效数字,范围约为3.4e-38 ~ 3.4e+38 | | double | 8 | 精度为15位有效数字,范围约为1.7e-308 ~ 1.7e+308 |
浮点数默认为双精度类型,要声明单精度浮点数,需要在数据类型前加上float关键字。
同时C++也提供了long double类型,它的范围更大,精度更高。但由于其占用空间较大,在实际使用中需谨慎选择。
布尔类型在C++中表示真(true)和假(false),用于逻辑运算。
| 数据类型 | 字节数 | 范围 | | -------- | ------ | ---- | | bool | 1 | true/false |
在实际使用中,可以使用布尔类型的数据来简化代码的书写,使代码更加直观。
在C++中,为了让程序员方便地编写代码,同时避免硬编码的麻烦,定义了一些与数据类型有关的宏。例如:
这些宏的定义在头文件<climits>
和<cfloat>
中,可以直接调用使用。
参考文献: