C++ 数据类型

来源:这里教程网 时间:2026-02-17 08:30:02 作者:

C++ 数据类型

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

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

原始内置类型

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

TypeKeyword
Booleanbool
Characterchar
Integerint
Floating pointfloat
Double floating pointdouble
Valuelessvoid
Wide characterwchar_t

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

signedunsignedshortlong

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

类型典型位宽典型范围
char1字节-127 到 127 或 0 到 255
unsigned char1字节0 到 255
signed char1字节-127 到 127
int4字节-2147483648 到 2147483647
unsigned int4字节0 到 4294967295
signed int4字节-2147483648 到 2147483647
short int2字节-32768 到 32767
unsigned short int2字节0 到 65,535
signed short int2字节-32768 到 32767
long int8字节-9223372036854775808 到 9223372036854775807
signed long int8字节与long int相同
unsigned long int8字节0 到 18446744073709551615
long long int8字节-(2^63) 到 (2^63)-1
unsigned long long int8字节0 到 18,446,744,073,709,551,615
float4字节
double8字节
long double12字节
wchar_t2或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 : 1Size of int : 4Size of short int : 2Size of long int : 4Size of float : 4Size of double : 8Size 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,因为每个名字将比前面的名字大一个。

相关推荐