通过示例程序,您将了解 C++ 中使用的基本数据类型,例如字符、整数和十进制。您还将了解用于更改数据类型的 C++ 修饰符。
数据类型决定了变量可以保存的数据类型,例如,整数变量可以保存整数数据,字符类型变量可以保存字符数据,等等。
所有变量在声明期间都使用数据类型来限制可以存储的数据类型。因此,我们可以得出结论,数据类型用于告知变量它们可以保存的数据种类。每次在 C++ 中声明变量时,编译器都会根据给定的数据类型为该变量分配一些内存空间。不同类型的数据需要不同数量的内存。
C++ 提供了广泛的数据类型,程序员可以选择最适合应用程序需求的数据类型。数据类型指定了必须保存的值的大小和类型。尽管 C++ 指令在所有平台上都相同,但用于修改每种数据类型的存储表示和机器指令因机器而异。
C++ 数据类型大致分为三类
这些数据类型是内置或预定义的数据类型,用户可以直接使用它们来声明变量。示例包括 int、char、float、bool 等。
C++ 提供的基本数据类型包括:
派生数据类型是从基本或内置数据类型派生的数据类型。它们分为四种类型:
这些数据类型由用户定义。例如,在 C++ 中,您可以定义一个类或一个结构。C++ 中提供以下用户定义数据类型:
int。
int salary = 65000;
char 表示。
char alphabet = 'a';
true 和 false。bool 用于描述布尔数据类型。
double test = false;
float。浮点变量通常占用 4 字节内存空间。
char average= 56.32;
double 是双精度浮点数据类型的关键字。
double volume = 165.61524;
void 用于不返回任何值的函数。注意:我们不能为 void 类型声明变量。我们可以声明不返回任何值的 void 类型函数。
wchar_t test = L'?' // storing Hebrew character;
以下示例将输出您计算机上各种数据类型的正确大小。
#include <iostream>
using namespace std;
int main()
{
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of long : " << sizeof(long) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
return 0;
}
输出
Size of char : 1 Size of int : 4 Size of long : 8 Size of float : 4 Size of double : 8

顾名思义,数据类型修饰符与内置数据类型一起使用,以修改或更改特定数据类型可以容纳或存储的数据长度。
C++ 中提供以下数据类型修饰符:
下表突出显示了与类型修饰符结合使用时内置数据类型的更改大小和范围
上述值可能因编译器而异。
可以使用 sizeof() 函数显示所有数据类型的大小,并将数据类型的关键字作为参数传递给此函数,如下所示:
基本数据类型的范围在头文件 <limits.h> 中定义。无符号修饰符的最小值为零。因此,没有为无符号最小值提供宏常量。
| 数据类型 | 大小(以字节为单位) | 范围 (Range) |
|---|---|---|
| 短整型 | 2 | -32,768 到 32,767 |
| 无符号短整型 | 2 | 0 到 65,535 |
| 无符号整型 | 4 | 0 到 4,294,967,295 |
| int | 4 | -2,147,483,648 到 2,147,483,647 |
| 长整型 | 4 | -2,147,483,648 到 2,147,483,647 |
| 无符号长整型 | 4 | 0 到 4,294,967,295 |
| 长长整型 | 8 | -(2^63) 到 (2^63)-1 |
| 无符号长长整型 | 8 | 0 到 18,446,744,073,709,551,615 |
| 有符号字符 | 1 | -128 到 127 |
| 无符号字符 | 1 | 0 到 255 |
| float | 4 | |
| double | 8 | |
| 长双精度 | 12 | |
| wchar_t | 2 或 4 | 1 个宽字符 |
让我们看一些例子。
long a = 3623232;
long int b = 1645342;
long double c = 213434.56343;
short d = 3434233; // Error! out of range
unsigned int e = -5; // Error! can only store positive numbers or 0
宏常量用于查找字符、短整型、整型、长整型、长长整型等整数类型的大小。这些宏定义允许您声明将在整个代码中使用的常量值。宏定义不是变量,不能像变量一样被程序代码更改。
| 宏常量 | 描述 | 值 |
|---|---|---|
| CHAR_BIT | 它返回 char 对象中的位数。 | 8 |
| SCHAR_MIN | 它返回有符号 char 对象的最小值。 | -128 |
| SCHAR_MAX | 它返回有符号 char 对象的最大值。 | 127 |
| UCHAR_MAX | 它返回无符号 char 对象的最大值。 | 255 |
| CHAR_MIN | 它返回 char 对象的最小值。 | 0 或 SCHAR_MIN |
| CHAR_MAX | 它返回 char 对象的最大值。 | SCHAR_MAX 或 UCHAR_MAX |
| MB_LEN_MAX | 它返回多字节字符在任何区域设置中的最大字节数。 | 1 或更大 |
| SHRT_MIN | 它返回有符号 short int 对象的最小值。 | -32768 |
| SHRT_MAX | 它返回有符号 short int 对象的最大值。 | 32767 |
| USHRT_MAX | 它返回无符号 short int 对象的最大值。 | 65535 |
| INT_MIN | 它返回有符号 int 对象的最小值。 | -32768 或 -2147483648 |
| INT_MAX | 它返回有符号 int 对象的最大值。 | 32767 或 2147483647 |
| UINT_MAX | 它返回无符号 int 对象的最大值。 | 65535 或 4294967295 |
| LONG_MIN | 它返回有符号 long int 对象的最小值。 | -2147483648 或 -9223372036854775808 |
| LONG_MAX | 它返回有符号 long int 对象的最大值。 | 2147483647 或 9223372036854775807 |
| ULONG_MAX | 它返回无符号 long int 对象的最大值。 | 4294967295 或 18446744073709551615 |
| LLONG_MIN | 它返回有符号 long long int 对象的最小值。 | -9223372036854775808 |
| LLONG_MAX | 它返回有符号 long long int 对象的最大值。 | 9223372036854775807 |
| ULLONG_MAX | 它返回无符号 long long int 对象的最大值。 | 18446744073709551615 |
实际值由具体的系统和库实现决定,但它必须表示这些类型在目标平台中的限制。LLONG MIN、LLONG MAX 和 ULLONG MAX 是为遵循 1999 年或更高版本 C 标准(其中包括 2011 年之后的 C++ 标准:C++11)的库定义的。
// C++ program to sizes of data types
#include <iostream>
#include <limits.h>
using namespace std;
int main() {
cout << "Size of char : " << sizeof(char) << " byte" << endl;
cout << "char minimum value: " << CHAR_MIN << endl;
cout << "char maximum value: " << CHAR_MAX << endl;
cout << "Size of int : " << sizeof(int) << " bytes" <<endl;
cout << "Size of short int : " << sizeof(short int) <<" bytes" << endl;
cout << "Size of long int : " << sizeof(long int) <<" bytes" << endl;
cout << "Size of signed long int : "<< sizeof(signed long int) << " bytes" << endl;
cout << "Size of unsigned long int : " << sizeof(unsigned long int) << " bytes" << endl;
cout << "Size of float : " << sizeof(float) << " bytes" << endl;
cout << "Size of double : " << sizeof(double) << " bytes" << endl;
cout << "Size of wchar_t : " << sizeof(wchar_t) << " bytes" << endl;
return 0;
}
输出
Size of char : 1 byte Size of int : 4 bytes Size of short int : 2 bytes Size of long int : 8 bytes Size of signed long int : 8 bytes Size of unsigned long int : 8 bytes Size of float : 4 bytes Size of double : 8 bytes Size of wchar_t : 4 bytes
派生数据类型是从主数据类型派生的数据类型。例如数组、指针、函数类型、结构等。
我们将在下一教程中学习这些派生数据类型。