C++ 数据类型

C++ 数据类型

在任何编程语言中编写程序时,您需要使用各种变量来存储各种信息。变量只是保留的内存位置,用于存储值。这意味着当您创建变量时,您在内存中保留了一些空间。

您可能希望存储各种数据类型的信息,例如字符、宽字符、整数、浮点数、双精度浮点数、布尔等。根据变量的数据类型,操作系统会分配内存并决定可以存储在保留内存中的内容。

原始内置类型

C++为程序员提供了丰富的内置和用户定义的数据类型。下表列出了七种基本的C++数据类型-

Type Keyword
Boolean bool
Character char
Integer int
Floating point float
Double floating point double
Valueless void
Wide character wchar_t

以下是几种基本类型,可以使用一个或多个类型修饰符进行修改:

  • signed
  • unsigned
  • short
  • long

下表显示了变量的类型、存储值所需的内存大小,以及该类型变量可以存储的最大和最小值。

类型 典型位宽 典型范围
char 1字节 -127 到 127 或 0 到 255
unsigned char 1字节 0 到 255
signed char 1字节 -127 到 127
int 4字节 -2147483648 到 2147483647
unsigned int 4字节 0 到 4294967295
signed int 4字节 -2147483648 到 2147483647
short int 2字节 -32768 到 32767
unsigned short int 2字节 0 到 65,535
signed short int 2字节 -32768 到 32767
long int 8字节 -9223372036854775808 到 9223372036854775807
signed long int 8字节 与long int相同
unsigned long int 8字节 0 到 18446744073709551615
long long int 8字节 -(2^63) 到 (2^63)-1
unsigned long long int 8字节 0 到 18,446,744,073,709,551,615
float 4字节
double 8字节
long double 12字节
wchar_t 2或4字节 一个宽字符

变量的大小可能与上表中显示的大小不同,这取决于您使用的编译器和计算机。

以下是一个示例,它会在您的计算机上生成各种数据类型的正确大小。

#include <iostream>
using namespace std;

int main() {
   cout << "Size of char : " << sizeof(char) << endl;
   cout << "Size of int : " << sizeof(int) << endl;
   cout << "Size of short int : " << sizeof(short int) << endl;
   cout << "Size of long int : " << sizeof(long int) << endl;
   cout << "Size of float : " << sizeof(float) << endl;
   cout << "Size of double : " << sizeof(double) << endl;
   cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;

   return 0;
}

这个例子使用了 endl ,它在每一行后面插入一个换行符,并且使用<<操作符将多个值传递给屏幕。我们还使用 sizeof() 操作符来获取各种数据类型的大小。

当上述代码被编译并执行时,它会产生下面的结果,这个结果可能因机器而异:

Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4

以下是另一个例子:

#include <iostream>
#include <limits>
using namespace std;

int main() {

    std::cout << "Int Min " << std::numeric_limits<int>::min() << endl;
    std::cout << "Int Max " << std::numeric_limits<int>::max() << endl;
    std::cout << "Unsigned Int  Min " << std::numeric_limits<unsigned int>::min() << endl;
    std::cout << "Unsigned Int Max " << std::numeric_limits<unsigned int>::max() << endl;
    std::cout << "Long Int Min " << std::numeric_limits<long int>::min() << endl;
    std::cout << "Long Int Max " << std::numeric_limits<long int>::max() << endl;

    std::cout << "Unsigned Long Int Min " << std::numeric_limits<unsigned  long int>::min() <<endl;
    std::cout << "Unsigned Long Int Max " << std::numeric_limits<unsigned  long int>::max() << endl;

}

typedef声明

你可以使用 typedef 为现有的类型创建一个新的名称。以下是使用typedef定义新类型的简单语法:

typedef type newname;

例如,以下代码告诉编译器feet是int的别名

typedef int feet;

现在,以下声明是完全合法的,将创建一个名为distance的整数变量

feet distance;

枚举类型

枚举类型声明了一个可选的类型名称以及一组零个或多个标识符,这些标识符可以用作该类型的值。每个枚举常量都是一个类型为枚举的常量。

创建一个枚举类型需要使用关键字 enum 。枚举类型的一般形式为:

enum enum-name { list of names } var-list;

在这里,enum-name是枚举类型的名称。名称列表用逗号分隔。

例如,以下代码定义了一个名为colors的颜色枚举和类型为color的变量c。最后,将c赋值为”blue”。

enum color { red, green, blue } c;
c = blue;

默认情况下,姓的值为0,名字的值为1,第三个名字的值为2,依此类推。但是您可以通过添加初始化器来为特定的名字赋予特定的值。例如,在下面的枚举中, 绿色 的值将为5。

enum color { red, green = 5, blue };

在这里, 蓝色 将会有一个值为6,因为每个名字将比前面的名字大一个。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程