📜  C++数据类型

📅  最后修改于: 2021-05-30 07:14:46             🧑  作者: Mango

在声明期间,所有变量都使用数据类型来限制要存储的数据类型。因此,可以说数据类型用于告诉变量它可以存储的数据类型。只要在C++中定义了变量,编译器就会根据声明该变量的数据类型为该变量分配一些内存。每种数据类型都需要不同数量的内存。

C++中的数据类型主要分为三种类型:

  1. 原始数据类型:这些数据类型是内置的或预定义的数据类型,用户可以直接使用它们声明变量。例如:int,char,float,bool等。C++中可用的原始数据类型为:
    • 整数
    • 字符
    • 布尔型
    • 浮点
    • 双浮点数
    • 无价值或虚无
    • 宽字符
  2. 派生数据类型:从原始或内置数据类型派生的数据类型称为派生数据类型。这些可以是四种类型,即:
    • 函数
    • 大批
    • 指针
    • 参考
  3. 抽象或用户定义的数据类型:这些数据类型由用户自己定义。就像在C++中定义类或结构一样。 C++提供了以下用户定义的数据类型:
    • 班级
    • 结构
    • 联盟
    • 枚举
    • Typedef定义的DataType

本文讨论了C++中可用的原始数据类型

  • 整数:用于整数数据类型的关键字是int 。整数通常需要4个字节的存储空间,范围为-2147483648至2147483647。
  • 字符:字符数据类型用于存储字符。用于字符数据类型的关键字是char 。字符通常需要1个字节的存储空间,范围从-128到127或0到255。
  • 布尔值:布尔数据类型用于存储布尔值或逻辑值。布尔变量可以存储truefalse 。用于布尔数据类型的关键字是bool
  • 浮点数:浮点数据类型用于存储单精度浮点值或十进制值。用于浮点数据类型的关键字是float 。浮点变量通常需要4个字节的存储空间。
  • Double Floating Point :Double Floating Point数据类型用于存储双精度浮点值或十进制值。用于双浮点数据类型的关键字是double 。双变量通常需要8个字节的存储空间。
  • void :无效表示没有任何值。 void数据类型表示无价值的实体。 void数据类型是用于不返回值的那些函数。
  • 宽字符:宽字符数据类型也是字符数据类型,但是此数据类型的大小大于正常的8位数据类型。由wchar_t表示。通常为2或4个字节长。

数据类型修饰符

顾名思义,数据类型修饰符与内置数据类型一起使用,以修改特定数据类型可以保存的数据长度。

C++中可用的数据类型修饰符为:

  • 无符号
  • 短的

下表总结了与类型修饰符结合使用时内置数据类型的修改大小和范围:

Data Type Size (in bytes) Range
short int 2 -32,768 to 32,767
unsigned short int 2 0 to 65,535
unsigned int 4 0 to 4,294,967,295
int 4 -2,147,483,648 to 2,147,483,647
long int 4 -2,147,483,648 to 2,147,483,647
unsigned long int 8 0 to 4,294,967,295
long long int 8 -(2^63) to (2^63)-1
unsigned long long int 8 0 to 18,446,744,073,709,551,615
signed char 1 -128 to 127
unsigned char 1 0 to 255
float 4  
double 8  
long double 12  
wchar_t 2 or 4 1 wide character

注意:以上值可能因编译器而异。在上面的示例中,我们考虑了GCC 32位。
我们可以通过使用sizeof()运算符并将数据类型的关键字作为该函数的参数传递来显示所有数据类型的大小,如下所示:

CPP
// C++ program to sizes of data types
#include
using namespace std;
 
int main()
{
    cout << "Size of char : " << sizeof(char)
      << " byte" << 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" <


输出:

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