# C 数据类型

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

#### 在本教程中，您将学习 C 编程中的基本数据类型，例如`int`，`float`，`char`等。

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

```c
int myVar;
```

在此，`myVar`是`int`（整数）类型的变量。`int`的大小为 4 个字节。

* * *

## 基本类型

这是一张表，其中包含 C 编程中用于快速访问的常用类型。

| 类型 | 大小（字节） | 格式说明符 |
| --- | --- | --- |
| `int` | 至少 2，通常 4 | `%d`，`%i` |
| `char` | 1 | `%c` |
| `float` | 4 | `%f` |
| `double` | 8 | `%lf` |
| `short int` | 通常 2 | `%hd` |
| `unsigned int` | 至少 2，通常 4 | `%u` |
| `long int` | 至少 4，通常 8 | `%ld`，`%li` |
| `long long int` | 至少 8 | `%lld`，`%lli` |
| `unsigned long int` | 至少 4 | `%lu` |
| `unsigned long long int` | 至少 8 | `%llu` |
| `signed char` | 1 | `%c` |
| `unsigned char` | 1 | `%c` |
| `long double` | 至少 10，通常 12 或 16 | `%Lf` |

* * *

### `int`

整数是整数，可以同时具有零，正和负值，但不能有十进制值。 例如`0`，`-5`，`10`

我们可以使用`int`声明一个整数变量。

```c
int id;
```

在此，`id`是整数类型的变量。

您可以在 C 编程中一次声明多个变量。 例如，

```c
int id, age;
```

`int`的大小通常为 4 个字节（32 位）。 并且，它可以从`-2147483648`到`2147483647`采取`2<sup>32</sup>`不同的状态。

* * *

### `float`和`double`

`float`和`double`用于保存实数。

```c
float salary;
double price;
```

在 C 语言中，浮点数也可以用指数表示。 例如，

```c
float normalizationFactor = 22.442e2;
```

`float`和`double`有什么区别？

`float`（单精度浮点数据类型）的大小为 4 个字节。`double`（双精度浮点数据类型）的大小为 8 个字节。

* * *

### `char`

`char`关键字用于声明字符类型变量。 例如，

```c
char test = 'h';
```

字符变量的大小为 1 个字节。

* * *

### `void`

`void`是不完整的类型。 意思是“没有”或“没有类型”。 您可以将`void`视为**不存在**。

例如，如果一个函数不返回任何东西，则其返回类型应为`void`。

请注意，您无法创建`void`类型的变量。

* * *

### `short`和`long`

如果需要使用大量数字，可以使用类型说明符`long`。 这是如何做：

```c
long a;
long long b;
long double c;
```

在这里，变量`a`和`b`可以存储整数值。 并且，`c`可以存储浮点数。

如果确定，将仅使用较小的整数（`[−32,767, +32,767]`范围），则可以使用`short`。

```c
short d;
```

您始终可以使用`sizeof()`运算符检查变量的大小。

```c
#include <stdio.h>      
int main() {
  short a;
  long b;
  long long c;
  long double d;

  printf("size of short = %d bytes\n", sizeof(a));
  printf("size of long = %d bytes\n", sizeof(b));
  printf("size of long long = %d bytes\n", sizeof(c));
  printf("size of long double= %d bytes\n", sizeof(d));
  return 0;
}
```

* * *

### `signed`和`unsigned`

在 C 语言中，`signed`和`unsigned`是类型修饰符。 您可以使用它们来更改数据类型的数据存储。 例如，

```c
unsigned int x;
int y;
```

在这里，因为我们使用了`unsigned`修饰符，所以变量`x`只能容纳零和正值。

考虑到`int`的大小为 4 个字节，变量`y`可以保存从`-2<sup>31</sup>`到`2<sup>31</sup>-1`的值，而变量`x`可以保存从`0`到`2<sup>32</sup>-1`的值。

* * *

用 C 编程定义的其他数据类型是：

*   布尔类型
*   枚举类型
*   复杂类型

* * *

## 派生数据类型

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

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