C语言包含5个基本数据类型: void, integer, float, double, 和 char.
类型 | 描述 |
void | 空类型 |
int | 整型 |
float | 浮点类型 |
double | 双精度浮点类型 |
char | 字符类型 |
C++ 定义了另外两个基本数据类型: bool 和 wchar_t.
类型 | 描述 |
bool | 布尔类型, 值为true 或 false |
wchar_t | 宽字符类型 |
类型修饰符
一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰. 当类型修饰符单独使用的时候, 默认的类型是 int. 下表是所有可能出现的数据类型:
bool |
char |
unsigned char |
signed char |
int |
unsigned int |
signed int |
short int |
unsigned short int |
signed short int |
long int |
signed long int |
unsigned long int |
float |
double |
long double |
wchar_t |
类型大小和表示范围
基本数据类型的大小以及能够表示的数据范围是与编译器和硬件平台有关的. "cfloat" (或者 "float.h") 头文件往往定义了基本数据类型能够表示的数据的最大值和最小值. 你也可以使用 sizeof 来获得类型的大小(字节数) . 然而, 很多平台使用了一些数据类型的标准大小,如. int 和 float 通常占用 32位, char 占用 8位, double 通常占用64位. bools 通常以 8位 来实现.
在 C/C++ 中,你可以使用`<limits.h>`(或者在 C++ 中使用`<climits>`)标准头文件中的宏来确认数据类型的范围。这些宏定义了每个数据类型的最大值和最小值。下面是一些常用的宏以及它们的功能:
1. CHAR_BIT:定义了一个字节中的位数。
2. UCHAR_MAX:定义了无符号 char 类型的最大值。
3. UCHAR_MIN:定义了无符号 char 类型的最小值(通常为 0)。
4. CHAR_MAX:定义了有符号 char 类型的最大值。
5. CHAR_MIN:定义了有符号 char 类型的最小值(通常为 -128 或者 0)。
6. UINT_MAX:定义了无符号 int 类型的最大值。
7. UINT_MIN:定义了无符号 int 类型的最小值。
8. INT_MAX:定义了有符号 int 类型的最大值。
9. INT_MIN:定义了有符号 int 类型的最小值。
10. ULONG_MAX:定义了无符号 long 类型的最大值。
11. ULONG_MIN:定义了无符号 long 类型的最小值。
12. LONG_MAX:定义了有符号 long 类型的最大值。
13. LONG_MIN:定义了有符号 long 类型的最小值。
14. ULLONG_MAX:定义了无符号 long long 类型的最大值。
15. LLONG_MAX:定义了有符号 long long 类型的最大值。
16. LLONG_MIN:定义了有符号 long long 类型的最小值。
以下是一个简单的示例,展示了如何使用这些宏来输出不同数据类型的范围:
```c
#include <stdio.h>
#include <limits.h>
int main() {
printf("The range of char is from %d to %d.\n", CHAR_MIN, CHAR_MAX);
printf("The range of int is from %d to %d.\n", INT_MIN, INT_MAX);
printf("The range of long is from %ld to %ld.\n", LONG_MIN, LONG_MAX);
printf("The range of long long is from %lld to %lld.\n", LLONG_MIN, LLONG_MAX);
return 0;
}
```
在这个示例中,我们使用了`<limits.h>`头文件中的宏来输出不同数据类型的范围。当你运行这段代码时,你将会看到不同数据类型的范围被打印出来。
打开Visual Studio 2022 演示
把代码复制进去
运行结果