# C++ 数据类型

> 原文： [https://www.programiz.com/cpp-programming/data-types](https://www.programiz.com/cpp-programming/data-types)

#### 在本教程中，我们将借助示例学习 C++ 编程中的基本数据类型，例如`int`，`float`，`char`等。

在 C++ 中，数据类型是变量的声明。 这确定了与变量关联的数据的类型和大小。 例如，

```cpp
int age = 13; 
```

在此，`age`是类型`int`的变量。 这意味着该变量只能存储 2 或 4 个字节的整数。

* * *

## C++ 基本数据类型

下表显示了基本数据类型，其含义和大小（以字节为单位）：

| 数据类型 | 含义 | 大小（以字节为单位） |
| --- | --- | --- |
| `int` | 整数 | 2 或 4 |
| `float` | 浮点数 | 4 |
| `double` | 双浮点数 | 8 |
| `char` | 字符 | 1 |
| `wchar_t` | 宽字符 | 2 |
| `bool` | 布尔值 | 1 |
| `void` | 空 | 0 |

现在，让我们更详细地讨论这些基本数据类型。

* * *

### 1\. C++ `int`

*   `int`关键字用于指示整数。
*   它的大小通常为 4 个字节。 意思是，它可以存储从 **-2147483648 到 214748647** 的值。
*   例如，

```cpp
int salary = 85000; 
```

* * *

### 2\. C++ `float`和`double`

*   `float`和`double`用于存储浮点数（小数和指数）。
*   `float`的大小为 4 个字节，`double`的大小为 8 个字节。 因此，`double`的精度是`float`的两倍。 要了解更多信息，请访问 C++ `float`和`double`。
*   例如，

```cpp
float area = 64.74;
double volume = 134.64534; 
```

如上所述，这两种数据类型也用于指数。 例如，

```cpp
double distance = 45E12    // 45E12 is equal to 45*10^12 
```

* * *

### 3\. C++ `char`

*   `char`关键字用于字符。
*   它的大小是 1 个字节。
*   C++ 中的字符用单引号`' '`括起来。
*   例如，

```cpp
char test = 'h'; 
```

**注意**：在 C++ 中，整数值存储在`char`变量中，而不是字符本身。 要了解更多信息，请访问 [C++ 字符](https://www.programiz.com/cpp-programming/char)。

* * *

### 4\. C++ `wchar_t`

*   宽字符`wchar_t`与`char`数据类型类似，不同之处在于它的大小是 2 个字节而不是 1 个字节。
*   它用于表示比单个`char`需要更多内存来表示它们的字符。
*   例如，

```cpp
wchar_t test = L'ם'  // storing Hebrew character; 
```

注意引号前的字母`L`。

**注意**： C++ 11 中还引入了其他两种固定大小的字符类型`char16_t`和`char32_t`。

* * *

### 5\. C++ `bool`

*   `bool`数据类型具有两个可能值之一：`true`或`false`。
*   布尔用于条件语句和循环（我们将在后面的章节中学习）。
*   例如，

```cpp
bool cond = false; 
```

* * *

### 6\. C++ `void`

*   `void`关键字指示没有数据。 这意味着“没有”或“没有值”。
*   当我们了解函数和指针时，将使用`void`。

**注意**：我们无法声明`void`类型的变量。

* * *

## C++ 类型修饰符

我们可以使用类型修饰符来进一步修改一些基本数据类型。 C++ 中有 4 种类型修饰符。 他们是：

1.  `signed`
2.  `unsigned`
3.  `short`
4.  `long`

我们可以使用上述修饰符修改以下数据类型：

*   `int`
*   `double`
*   `char`

* * *

### C++ 修饰后的数据类型列表

| 数据类型 | 大小（以字节为单位） | 含义 |
| --- | --- | --- |
| `signed int` | 4 | 用于整数（相当于`int`） |
| `unsigned int` | 4 | 只能存储正整数 |
| `short` | 2 | 用于小整数（范围 **-32768 至 32767**） |
| `long` | 至少 4 | 用于大整数（相当于`long int`） |
| `unsigned long` | 4 | 用于大正整数或 0（等于`unsigned` `long int`） |
| `long long` | 8 | 用于非常大的整数（相当于`long long int`）。 |
| `unsigned long long` | 8 | 用于非常大的正整数或 0（等于`unsigned long long int`） |
| `long double` | 8 | 用于大浮点数 |
| `signed char` | 1 | 用于字符（保证范围 **-127 至 127**） |
| `unsigned char` | 1 | 用于字符（范围 **0 至 255**） |

让我们看一些例子。

```cpp
long b = 4523232;
long int c = 2345342;
long double d = 233434.56343;
short d = 3434233; // Error! out of range
unsigned int a = -5;    // Error! can only store positive numbers or 0 
```

* * *

## 派生数据类型

从基本数据类型派生的数据类型是派生类型。 例如：数组，指针，函数类型，结构等。

我们将在以后的教程中了解这些派生的数据类型。