• 【C++】C++基础知识(二)---数据类型


    1. C++数据类型

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。也就是说当创建一个变量的时候,就会在内存中保留一些空间。

    C++中在定义变量或者是常量的时候必须指定其数据类型,否则是无法给变量分配内存的。数据类型存在的意义: 给变量分配合适的内存空间。

    C++中常用的几种数据类型如下表所示:

    数据类型关键字
    整型int
    浮点型float
    双浮点型double
    字符型char
    字符串型string
    布尔型bool
    无类型void

    1.1 整型

    C++基本整型有:

    类型所占字节数表示范围
    short(短整型)2-2^15 ~ 2^15-1
    int(整型)4-2^31 ~ 2^31-1
    long(长整型)4(windows下)、4或8(Linux下,32位系统为4,64位系统为8)-2^31 ~ 2^31-1 or -2^63 ~ 2^63-1
    long long(长长整型)8-2^63 ~ 2^63-1
    • 代码演示
    #include 
    using namespace std;
    
    int main() {
    	//1、short(短整型) 范围:-2^15-2^15-1[2字节]
    	short a = 10;
    	cout << a << endl;
    	cout << "short类型占用的内存空间为:" << sizeof(short) << endl;
    
    	//2、int(整型) 范围:-2^31-2^31-1[4字节]
    	int b = 20;
    	cout << b << endl;
    	cout << "int类型占用的内存空间为:" << sizeof(int) << endl;
    
    	//3、long(长整型) 范围:-2^31-2^31-1[window下4字节;Linux下4字节(32位),8字节(64位]
    	long c = 30;
    	cout << c << endl;
    	cout << "long类型占用的内存空间为:" << sizeof(long) << endl;
    
    	//4、long long(长长整型) 范围:-2^63-2^63-1[8字节]
    	long d = 40;
    	cout << d << endl;
    	cout << "long long类型占用的内存空间为:" << sizeof(long long) << endl;
    
    	system("pause");
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    输出结果如下:
    在这里插入图片描述

    1.2 浮点型

    作用:用于表示小数

    C++浮点型有:

    类型所占字节数表示范围十进制有效位数
    float(单精度类型)4-2^31 ~ 2^31-17
    double(双精度类型)8-2^63 ~ 2^63-115

    注意: float和double浮点型数据的区别在于表示的有效数字范围不同。

    • 代码演示
    #include 
    using namespace std;
    
    int main() {
    	//默认情况下,输出一个小数,会显示6位有效数字。
    	//1、float(一般在初始值后面加一个f,这样得到的数就是float类型的;
    	//   若不加f,得到的数编辑器默认为double类型,此时需要将数据类型进行一个转换)
    	float num1 = 3.1415926f;
    	cout << "num1 = " << num1 << endl;
    	cout << "float 类型占用的内存空间为: " << sizeof(float) << endl;
    
    	//2、double
    	double num2 = 3.1415926;
    	cout << "num2 = " << num2 << endl;
    	cout << "double 类型占用的内存空间为: " << sizeof(double) << endl;
    
    	//科学计数法
    	float f1 = 3e2; //3e2 = 3 * 10^2
    	cout << "f1 = " << f1 << endl;
    
    	float f2 = 3e-2; //3e-2 = 3 * 10^-2
    	cout << "f2 = " << f2 << endl;
    
    	system("pause");
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    输出结果:
    在这里插入图片描述

    1.3 字符型

    字符型变量用于显示单个字符,C/C++中字符型变量只占用一个字节,字符型变量并不是把字符本身放到内存中存储,而是把对应的ASCII编码放到内存当中存储。

    定义字符型变量时需注意:

    1. 定义字符型变量只能用单引号,不能用双引号
    2. 定义字符型变量时,单引号内只能有一个字符,多与一个字符就会出现警告或者是错误

    常见字符及对应的ASCII编码:

    字符十进制二进制十六进制
    A650100 000040
    B660100 000141
    C670100 001042
    X880101 100058
    Y890101 100159
    Z900101 10105A
    a970110 000161
    b980110 001062
    c990110 001163
    x1200111 100078
    y1210111 100179
    z1220111 10107A

    注意: 对于常见字符对应的ASCII编码,都是有一定的规律的,只需要知道部分字符的编码即可推测其它字符所对应的编码。

    • 代码演示
    #include 
    using namespace std;
    
    int main() {
    
    	char ch = 'A';
    	cout << "ch字符为:" << ch << endl;
    	cout << "char类型占用内存: " << sizeof(ch) << " 字节" << endl;
    
    	//char ch = "a"; //报错,1、在显示字符型变量时,用单引号将字符括起来,不能用双引号
    	//char ch = 'abcde'; //报错,2、单引号内出现4个以上字符时将会报错,超过了int类型的内存4字节
    	//char ch = 'abcd'; //警告,3、输出最后一个字节(一个字符)
    
    	//将字符转换为对应的ASCII编码(a--97;A--65)
    	cout << (int)ch << endl;
    
    	//可以直接用ASCII编码给字符型变量赋值
    	ch = 97;
    	cout << ch << endl;
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    输出结果为:
    在这里插入图片描述

    1.4 字符串型

    字符串数据类型用来表示一串字符。

    字符串的定义方式有:

    1. C语言风格字符串
      语法:char 变量名[ ] = “字符串值”
    2. C++引入的string类类型
      语法:string 变量名 = “字符串值”
      在使用这种方式定义字符串变量时需要包含一个如下所示的头文件
    #include 
    
    • 1
    • 代码演示
    #include 
    using namespace std;
    #include  //使用C++风格的字符串时需要包含此头文件
    //用于表示一串字符
    
    int main() {
    
    	//1、C语言风格字符串:char 变量名[] = "字符串值"
    	char str1[] = "hello world!";
    	cout << str1 << endl;
    
    	//2、C++风格字符串:string 变量名 = "字符串值"
    	string str2 = "hello world!!!";
    	cout << str2 << endl;
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    输出结果:
    在这里插入图片描述

    1.5 布尔型

    布尔数据类型代表真或假的值,占用一个字节长度。
    布尔类型的变量值为非零时,返回的就是1;相反,只有当布尔类型的变量值为0时,返回的才是0。
    布尔变量可以用来表示逻辑运算、关系运算以及开关变量的值。

    • 代码演示
    #include 
    using namespace std;
    
    int main() {
    
    	bool flag = true;
    	bool flg = 3;
    	cout << flag << "\t" << flg << endl;
    
    	bool flag1 = false;
    	bool flg1 = 0;
    	cout << flag1 << "\t" << flg1 << endl;
    
    	cout << "bool类型占用的内存空间为: " << sizeof(bool) << endl;
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    输出结果:
    在这里插入图片描述

    2. 转义字符

    C++中常用转移字符如下:

    字符形式含义
    \a响铃
    \n换行
    \t水平制表符(跳到下一个Tab位置)
    \b退格,将当前位置移到前一列
    \r回车,将当前位置移到本行开头
    \反斜杠字符“\”
    单撇号
    "双引号
    \0空字符
    • 代码演示
    #include 
    using namespace std;
    
    int main() {
    
    	//转义字符:\n换行符
    	cout << "helloworld!\n" << endl;
    
    	//转义字符:\\反斜杠
    	cout << "helloworld!\\" << endl;
    
    	//转义字符:\t水平制表符。可以让输出的数据规整对齐
    	cout << "111\thelloworld!" << endl;
    	cout << "11111\thelloworld!" << endl;
    	cout << "1111111\thelloworld!" << endl;
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    输出结果:
    在这里插入图片描述

    3. sizeof关键字

    作用:利用sizeof关键字可以求某一特定的变量、指针、结构体、枚举、联合体等所占内存空间的大小。

    • 代码演示
    #include 
    using namespace std;
    #include 
    
    //语法:sizeof(数据类型/变量)
    //short(2字节) <= int(4字节) <= long(4字节or8字节) <= long long(8字节)
    //float(4字节) < double(8字节)
    //char(1字节) = bool(1字节) < string(4字节)
    
    int main() {
    
    	//1、short(短整型)
    	short num1 = 10;
    	cout << "short 类型所占的内存空间为: " << sizeof(num1) << endl;
    
    	//2、int(整型)
    	int num2 = 20;
    	cout << "int 类型所占的内存空间为: " << sizeof(num2) << endl;
    
    	//3、long(长整型)
    	long num3 = 30;
    	cout << "long 类型所占的内存空间为: " << sizeof(num3) << endl;
    
    	//4、long long(长长整型)
    	long long num4 = 40;
    	cout << "long long 类型所占的内存空间为: " << sizeof(num4) << endl;
    
    	//5、float(单精度浮点型)
    	float num5 = 3.14159f;
    	cout << "float 类型所占的内存空间为: " << sizeof(num5) << endl;
    
    	//6、double(双精度浮点型)
    	double num6 = 3.1415926;
    	cout << "double 类型所占的内存空间为: " << sizeof(num6) << endl;
    
    	//7、char(字符型)
    	char ch = 'a';
    	cout << "char 类型所占的内存空间为: " << sizeof(ch) << endl;
    
    	//8、string(字符串类类型)
    	string str = "abcde";
    	cout << "string 类型所占的内存空间为: " << sizeof(str) << endl;
    
    	//9、bool(布尔类型)
    	bool FLAG = true;
    	cout << "bool 类型所占的内存空间为: " << sizeof(FLAG) << endl;
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    输出结果:
    在这里插入图片描述

    注意:
    字符串string:
    string在C++中属于类类型,不是基本数据类型,类不能计算其在内存中的大小,非要用>sizeof(string)计算的话,一般算出来的结果为sizeof(string) = 4byte,若字符串中内容较多时,算出来的内存就不>是其真实大小。

    4. 数据输入

    C++中cin关键字用于从键盘来获取数据。其使用方式为:cin >> 变量名

    • 代码演示
    #include 
    using namespace std;
    #include 
    
    int main() {
    
    	int a = 10;
    	cout << "请输入整型变量: " << endl;
    	cin >> a;
    	cout << "a = " << a << endl;
    
    	double d = 10.1;
    	cout << "请输入实型变量: " << endl;
    	cin >> d;
    	cout << "d = " << d << endl;
    
    	char ch = 'a';
    	cout << "请输入字符型变量: " << endl;
    	cin >> ch;
    	cout << "ch = " << ch << endl;
    
    	string str = "hello";
    	cout << "请输入字符串型变量: " << endl;
    	cin >> str;
    	cout << "str = " << str << endl;
    
    	bool b = 0;
    	cout << "请输入bool型变量: " << endl;
    	cin >> b;
    	cout << "b = " << b << endl;
    
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    输出结果:
    在这里插入图片描述

  • 相关阅读:
    cdh大数据平台中es安装、logstash安装、nginx安装、RTMP和FTP
    再次安装pytorch
    洛谷P1307 数字反转 C语言
    LeetCode经典面试150题-day4(删除有序数组的重复项II)
    Simple QML Tutorial[来自官档]
    打包压缩工具 BoxedApp Packer[Not SDK]
    mysql创建用户
    Python 进阶 - 日常工作中使用过的简单Trick
    【计算机视觉40例】案例07:数字手势识别
    做一个物联网温湿度传感器(一)SHT30传感器介绍
  • 原文地址:https://blog.csdn.net/qq_43723025/article/details/127826846