03 七种基本的 C++ 数据类型以及枚举类型

系列文章目录

03 七种基本的 C++ 数据类型以及枚举类型


目录

系列文章目录

前言

一、7种基本数据类型

1.基本数据类型介绍

2.带符号的数据类型

二、C++中的枚举类型

总结


前言

C++中的数据类型指的是变量或常量能够存储的数据类型。它在c++中有很重要的作用,比如:

  • 帮助编译器分配内存空间:不同的数据类型需要不同的内存空间来存储数据,因此定义变量时需要指定数据类型,以便编译器为变量分配适当的内存空间。

  • 指定变量的范围:不同的数据类型有不同的范围,数据类型的选择决定了变量所能存储的数值范围。

  • 指定变量的默认值:不同的数据类型有不同的默认值,数据类型的选择决定了变量未初始化情况下的默认值。

下面,我们一起来学习一下C++中的基本数据类型。


一、7种基本数据类型

1.基本数据类型介绍

下面来简单的介绍一下这几种基本的数据类型

类型 关键字
布尔型 bool
字符型 char
整型 int
浮点型 float
双浮点型 double
短整型 short
长整型 long

注解:

1. 整型(int):表示整数,可以是正数、负数或零。
2. 短整型(short):表示短整数,通常只有两个字节大小。
3. 长整型(long):表示长整数,通常有四个或八个字节大小。
4. 字符型(char):表示单个字符,可以是字母、数字、标点符号等。
5. 布尔型(bool):只有两个可能的取值,true 或 false。
6. 浮点型(float):表示实数,通常按照 IEEE 浮点数标准存储。
7. 双精度浮点型(double):表示双精度实数,通常用于精度要求较高的场合。

2.带符号的数据类型

类型 范围
char 1 个字节 -128 到 127 或者 0 到 255
unsigned char 1 个字节 0 到 255
signed char 1 个字节 -128 到 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 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int 8 个字节 0 到 18,446,744,073,709,551,615
float 4 个字节 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
double 8 个字节 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
long long 8 个字节 双精度型占8 个字节(64位)内存空间,表示 -9,223,372,036,854,775,807 到 9,223,372,036,854,775,807 的范围
long double 16 个字节 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。

我们还可以使用代码,来查看每个类型的内存大小和取值的范围:

#include  
#include 
 
using namespace std;  
  
int main()  
{   
    cout << "bool: \t\t" << "所占字节数:" << sizeof(bool);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "char: \t\t" << "所占字节数:" << sizeof(char);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "signed char: \t" << "所占字节数:" << sizeof(signed char);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "unsigned char: \t" << "所占字节数:" << sizeof(unsigned char);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "wchar_t: \t" << "所占字节数:" << sizeof(wchar_t);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "short: \t\t" << "所占字节数:" << sizeof(short);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "int: \t\t" << "所占字节数:" << sizeof(int);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "unsigned: \t" << "所占字节数:" << sizeof(unsigned);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "long: \t\t" << "所占字节数:" << sizeof(long);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "unsigned long: \t" << "所占字节数:" << sizeof(unsigned long);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "double: \t" << "所占字节数:" << sizeof(double);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "long double: \t" << "所占字节数:" << sizeof(long double);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "float: \t\t" << "所占字节数:" << sizeof(float);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "size_t: \t" << "所占字节数:" << sizeof(size_t);  
    cout << "\t最大值:" << (numeric_limits::max)();  
    cout << "\t最小值:" << (numeric_limits::min)() << endl;  
    cout << "string: \t" << "所占字节数:" << sizeof(string) << endl;  
    return 0;  
}

输出结果如下:

bool:           所占字节数:1   最大值:1               最小值:0
char:           所占字节数:1   最大值:               最小值:€
signed char:    所占字节数:1   最大值:               最小值:€
unsigned char:  所占字节数:1   最大值:              最小值:
wchar_t:        所占字节数:2   最大值:65535           最小值:0
short:          所占字节数:2   最大值:32767           最小值:-32768
int:            所占字节数:4   最大值:2147483647      最小值:-2147483648
unsigned:       所占字节数:4   最大值:4294967295      最小值:0
long:           所占字节数:4   最大值:2147483647      最小值:-2147483648
unsigned long:  所占字节数:4   最大值:4294967295      最小值:0
double:         所占字节数:8   最大值:1.79769e+308    最小值:2.22507e-308
long double:    所占字节数:8   最大值:1.79769e+308    最小值:2.22507e-308
float:          所占字节数:4   最大值:3.40282e+38     最小值:1.17549e-38
size_t:         所占字节数:8   最大值:18446744073709551615    最小值:0
string:         所占字节数:40

我们可以从输出结果这很形象的看出每个类型的实际所占字节,和最大最小值。

这里代码有些同学可能看不懂,下面是一些解释:

上面的代码使用了模板类numeric_limits,它是C++标准库中提供的一个模板类,用于获取各种数值类型的相关信息。

其中,maxminnumeric_limits类中的成员函数,用于获取当前类型的最大值和最小值。sizeof是C++中的关键字,用于获取某个数据类型在内存中所占字节数。

\t\n是转义字符,分别表示制表符和换行符

<<是C++中的流插入符,用于将数据插入输出流中。

cout是C++标准库中的输出流对象,用于向标准输出设备(通常是控制台)输出信息。

二、C++中的枚举类型

C++中的枚举类型是一种用户自定义类型,它将一组常量定义为一个类型。枚举类型的定义使用关键字"enum",其语法如下:

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;
    

如果枚举没有初始化, 即省掉"=整型常数", 则从第一个标识符开始。 

enum EnumName {
    value1,
    value2,
    ...
};
 

 其中,EnumName为枚举类型名称,value1、value2等为枚举常量,它们的值默认从0开始自增。可以在定义枚举类型时,为其中的某些常量指定具体的值,如下所示:

enum Color {
    Red = 11,
    Green = 22,
    Blue = 33
};
 

枚举类型的常量可以直接使用枚举类型名称加上常量名,如下所示:

Color color = Red;
 

我们可以循环打印除Color中的值,代码如下:

#include 

enum Color {
    Red = 11,
    Green = 22,
    Blue = 33,
};

int main()
{

    // 循环输出枚举类型的值
    for (int i = Red; i <= Blue; i++)
    {
        switch (i)
        {
        case Red:
            std::cout << "Red: " << Red << std::endl;
            break;
        case Green:
            std::cout << "Green: " << Green << std::endl;
            break;
        case Blue:
            std::cout << "Blue: " << Blue << std::endl;
            break;
        default:
            break;
        }
    }


    return 0;
}

输出结果是:

Red: 11
Green: 22
Blue: 33

总结

以上就是今天要讲的内容,本文仅仅简单c++中的一些基本数据类型及其使用,重要的是理解,要想会用,我们还需要进行大量的练习。

你可能感兴趣的:(C++入门,c++,开发语言,学习,青少年编程)