龙马谷

 找回密码
 立即注册

QQ登录

只需一步,快速开始

龙马谷VIP会员办理客服QQ:82926983(如果临时会话没有收到回复,请先加QQ好友再发。)
1 [已完结] GG修改器新手入门与实战教程 31课 2 [已完结] GG修改器美化修改教程 6课 3 [已完结] GG修改器Lua脚本新手入门教程 12课
4 [已完结] 触动精灵脚本新手入门必学教程 22课 5 [已完结] 手游自动化脚本入门实战教程 9课 6 [已完结] C++射击游戏方框骨骼透视与自瞄教程 27课
7 [已完结] C++零基础UE4逆向开发FPS透视自瞄教程 29课 8 [已完结] C++零基础大漠模拟器手游自动化辅助教程 22课 9 [已完结] C++零基础开发DXF内存脚本辅助教程 32课
以下是天马阁VIP教程,本站与天马阁合作,赞助VIP可以获得天马阁对应VIP会员,名额有限! 点击进入天马阁论坛
1 [已完结] x64CE与x64dbg入门基础教程 7课 2 [已完结] x64汇编语言基础教程 16课 3 [已完结] x64辅助入门基础教程 9课
4 [已完结] C++x64内存辅助实战技术教程 149课 5 [已完结] C++x64内存检测与过检测技术教程 10课 6 [已完结] C+x64二叉树分析遍历与LUA自动登陆教程 19课
7 [已完结] C++BT功能原理与x64实战教程 29课 8 [已完结] C+FPS框透视与自瞄x64实现原理及防护思路
查看: 6022|回复: 0

如何最简单、通俗地理解C++的数据类型?

[复制链接]

19

主题

6

回帖

32

积分

编程入门

Rank: 1

龙马币
70
如何最简单、通俗地理解C++的数据类型?

1. 数据类型

1.1 整形

① 作用:整型变量表示的是整数类型的数据。
② C++中能够表示整形的类型有以下几种方式,区别在于所占内存空间不同。
③ 数据类型  占用空间  取值范围
1. short(短整型)   2字节   -2^15-2^15-1
2. int(整型)      4字节   -2^31-2^31-1
3. long(长整型) Windows为4字节,Linux为4字节(32位),8字节(64位)  -2^31-2^31-1
4. long long(长长整型) 8字节 -2^63-2^63-1
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //1、短整型(-32768~32767)
  6.     short num1 = 10;
  7.     short num5 = 32768; //溢出了,打印出来是-23768
  8.     short num6 = 32770; //溢出了,打印出来是-32766

  9.     //2、整型
  10.     int num2 = 10;

  11.     //3、长整型
  12.     long num3 = 10;

  13.     //4、长长整型
  14.     long long num4 = 10;

  15.     cout << "num1 = :" << num1 << endl;
  16.     cout << "num2 = :" << num2 << endl;
  17.     cout << "num3 = :" << num3 << endl;
  18.     cout << "num4 = :" << num4 << endl;
  19.     cout << "num5 = :" << num5 << endl;
  20.     cout << "num6 = :" << num6 << endl;

  21.     system("pause");

  22.     return 0;

  23. }
复制代码
运行结果:
num1 = :10
num2 = :10
num3 = :10
num4 = :10
num5 = :-32768
num6 = :-32766
请按任意键继续. . .

1.2 实型(浮点型)
① 作用:用于表示小数。
② 浮点型变量分为两种,两个的区别在于表示有效数字范围不同。1. 单精度float 2. 双精度double
③ 数据类型 占用字节 有效数字范围1. float       4字节   7位有效数字 2. double   8字节   15-16位有效数字1.2.1

单精度、双精度
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //1、单精度  float
  6.     //2、双精度  double
  7.     //默认情况下,无论单精度还是双精度,都只会显示6位有效数字
  8.     float f1 = 3.1415926;  //默认为双精度,前面加float相当于把双精度转换为单精度
  9.     float f2 = 3.1415926f;  //后面加一个f,直接创建的是单精度

  10.     cout << "f1 = :" << f1 << endl;

  11.     double d1 = 3.1415926;

  12.     cout << "d1 = :" << d1 << endl;

  13.     cout << "float  占用内存空间为" << sizeof(float) << endl;
  14.     cout << "double 占用内层空间为" << sizeof(double) << endl;

  15.     system("pause");
  16.     return 0;
  17. }
复制代码
运行结果:
f1 = :3.14159
d1 = :3.14159
float 占用内存空间为4
double 占用内层空间为8
请按任意键继续. . .

1.2.2 科学计数法#
  1. include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //科学计数法
  6.     float f3 = 3e2;  // 3 * (10 ^ 2)
  7.     cout << "f3 = :" << f3 << endl;

  8.     float f4 = 3e-2; // 3 * (0.1 ^ 2)
  9.     cout << "f4 = :" << f4 << endl;

  10.     system("pause");

  11.     return 0;
  12. }
复制代码
运行结果:
f3 = 300
f4 = 0.03
请按任意键继续. . .

1.3 字符型

① 字符型变量用于显示单个字符。
② 语法:char ch = 'a';
③ 在显示字符型变量时,用单引号字符括起来,不要用双引号。
④ 单引号内只能有一个字符,不可以是字符串。
⑤ C和C++中字符型变量只占用1个字节。
⑥ 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。
⑦ ASCII码大致由以下两部分组成:
1. ASCII非打印控制字符:ASCII表上的数字0-31分配给了控制字符,用于控制像打印机等一些外围设备。
2. ASCII打印字符:数字21-126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {

  5.     //1、字符型变量创建方式
  6.     char ch = 'a';
  7.     cout << ch << endl;

  8.     //2、字符型变量所占内存大小
  9.     cout << "char字符型变量所占内存:" << sizeof(char) << endl;

  10.     //3、字符型变量常见错误
  11.     char ch2 = 'b';  //创建字符型变量时候,要用单引号
  12.     //char ch3 = "b";  //错误,创建字符型变量时候,不能用双引号
  13.     //char ch4 = 'abcdef'; //错误,创建字符型变量时候,单引号内只能有一个字符

  14.     //4、字符型变量对应ASCII编码
  15.     cout << (int)ch << endl;   // (int)ch 为字符'a'的ASCIII码值

  16.     system("pause");

  17.     return 0;
  18. }
复制代码
运行结果:
achar
字符型变量所占内存:197
请按任意键继续. . .

1. 数据类型

1.1 整形
① 作用:整型变量表示的是整数类型的数据。

② C++中能够表示整形的类型有以下几种方式,区别在于所占内存空间不同。

③ 数据类型 占用空间 取值范围

1. short(短整型) 2字节 -2^15-2^15-1
2. int(整型) 4字节 -2^31-2^31-1
3. long(长整型) Windows为4字节,Linux为4字节(32位),8字节(64位) -2^31-2^31-1
4. long long(长长整型) 8字节 -2^63-2^63-1
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //1、短整型(-32768~32767)
  6.     short num1 = 10;
  7.     short num5 = 32768; //溢出了,打印出来是-23768
  8.     short num6 = 32770; //溢出了,打印出来是-32766

  9.     //2、整型
  10.     int num2 = 10;

  11.     //3、长整型
  12.     long num3 = 10;

  13.     //4、长长整型
  14.     long long num4 = 10;

  15.     cout << "num1 = :" << num1 << endl;
  16.     cout << "num2 = :" << num2 << endl;
  17.     cout << "num3 = :" << num3 << endl;
  18.     cout << "num4 = :" << num4 << endl;
  19.     cout << "num5 = :" << num5 << endl;
  20.     cout << "num6 = :" << num6 << endl;

  21.     system("pause");
  22.     return 0;
  23. }
复制代码
运行结果:
num1 = 10
num2 = 10
num3 = 10
num4 = 10
num5 = -32768
num6 = -32766
请按任意键继续. . .

1.2 实型(浮点型)
① 作用:用于表示小数。
② 浮点型变量分为两种,两个的区别在于表示有效数字范围不同。
1. 单精度float
2. 双精度double

③ 数据类型 占用字节 有效数字范围
1. float 4字节 7位有效数字
2. double 8字节 15-16位有效数字

1.2.1 单精度、双精度
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //1、单精度  float
  6.     //2、双精度  double
  7.     //默认情况下,无论单精度还是双精度,都只会显示6位有效数字
  8.     float f1 = 3.1415926;  //默认为双精度,前面加float相当于把双精度转换为单精度
  9.     float f2 = 3.1415926f;  //后面加一个f,直接创建的是单精度

  10.     cout << "f1 = :" << f1 << endl;

  11.     double d1 = 3.1415926;

  12.     cout << "d1 = :" << d1 << endl;

  13.     cout << "float  占用内存空间为" << sizeof(float) << endl;
  14.     cout << "double 占用内层空间为" << sizeof(double) << endl;

  15.     system("pause");

  16.     return 0;

  17. }
复制代码
运行结果:
f1 = :3.14159
d1 = :3.14159
float 占用内存空间为4
double 占用内层空间为8
请按任意键继续. . .

1.2.2 科学计数法
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //科学计数法
  6.     float f3 = 3e2;  // 3 * (10 ^ 2)
  7.     cout << "f3 = :" << f3 << endl;

  8.     float f4 = 3e-2; // 3 * (0.1 ^ 2)
  9.     cout << "f4 = :" << f4 << endl;
  10.     system("pause");
  11.     return 0;
  12. }
复制代码
运行结果:
f3 = :300
f4 = :0.03
请按任意键继续. . .


1.3 字符型
① 字符型变量用于显示单个字符。

② 语法:char ch = 'a';

③ 在显示字符型变量时,用单引号字符括起来,不要用双引号。

④ 单引号内只能有一个字符,不可以是字符串。

⑤ C和C++中字符型变量只占用1个字节。

⑥ 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。

⑦ ASCII码大致由以下两部分组成:

1. ASCII非打印控制字符:ASCII表上的数字0-31分配给了控制字符,用于控制像打印机等一些外围设备。
2. ASCII打印字符:数字21-126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {

  5.     //1、字符型变量创建方式
  6.     char ch = 'a';
  7.     cout << ch << endl;

  8.     //2、字符型变量所占内存大小
  9.     cout << "char字符型变量所占内存:" << sizeof(char) << endl;

  10.     //3、字符型变量常见错误
  11.     char ch2 = 'b';  //创建字符型变量时候,要用单引号
  12.     //char ch3 = "b";  //错误,创建字符型变量时候,不能用双引号
  13.     //char ch4 = 'abcdef'; //错误,创建字符型变量时候,单引号内只能有一个字符

  14.     //4、字符型变量对应ASCII编码
  15.     cout << (int)ch << endl;   // (int)ch 为字符'a'的ASCIII码值

  16.     system("pause");
  17.     return 0;
  18. }
复制代码
运行结果:
a
char字符型变量所占内存:1
97
请按任意键继续. . .

1.4 字符串型
① 用于表示一串字符。
② 字符串型有两种风格
③ C风格字符串:char 变量名[] = "字符串值"
④ C++风格字符串:string 变量名 = "字符串值"
  1. #include <iostream>
  2. using namespace std;
  3. #include <string> //用C++风格字符串时候,要包含这个头文件

  4. int main()
  5. {

  6.     //1、C风格字符串
  7.     //char 字符   =    这是一个字符
  8.     //char 字符[] =    这是一个字符串
  9.     //表示字符串时,等号后面,要用双引号

  10.     char str[] = "hello world";
  11.     cout << str << endl;

  12.     //2、C++风格字符串
  13.     string str2 = "hello world";
  14.     cout << str2 << endl;
  15.    
  16.     system("pause");
  17.     return 0;
  18. }
复制代码
运行结果:
hello worldhello world
请按任意键继续. . .

1.5 布尔类型 bool
① 布尔数据类型代表真或假的值。
② bool类型只有两个值:1. true -- 真 (本质是1)   2. false -- 假(本质是0)
③ bool类型占1个字节大小
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     //1、创建bool数据类型

  6.     bool flag1 = true; //true代表真
  7.     cout << flag1 << endl;
  8.    
  9.     bool flag2 = false; //flag 代表假
  10.     cout << flag2 << endl;
  11.    
  12.     //本质上 1代表真 0代表假

  13.     //2、查看bool类型所占空间
  14.     cout << "bool所占内存空间:" << sizeof(flag1) << endl;
  15.     cout << "bool所占内存空间:" << sizeof(flag2) << endl;

  16.     system("pause");
  17.     return 0;
  18. }
复制代码
运行结果:
10
bool所占内存空间:1
bool所占内存空间:1
请按任意键继续. . .


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

龙马谷| C/C++辅助教程| 安卓逆向安全| 论坛导航| 免责申明|Archiver|
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表龙马谷立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2018-2021 All Right Reserved.
在线客服
快速回复 返回顶部 返回列表