C++ 数据类型总结

一、常用整型

类型 长度 取值范围
char 1Byte -2^82^8-1
short (signed and unsigned) 2Byte -2^162^16-1
int (signed and unsigned) 4Byte -2^322^32-1
long (signed and unsigned) 4Byte -2^322^32-1
long long (signed and unsigned) 8Byte -2^642^64-1

char类型说明:char类型我们通常理解为字符型,其实其在内存中存放的是整型,只是当我们使用它的时候,编译器会将其翻译成ASCII字符集中对应的字符。

  1. wchar_t(宽字符类型):程序需要处理的字符集可能无法用一个8位的字节表示,对于这种情况,C++的处理方式有两种。首先如果大型字符集是实现的基本字符集,则编译器厂商可以将char定义为一个16位的字节或更长的字节。另一种类型wchar_t可以表示扩展字符集。由于cin和cout将输入和输出看作是char流,因此不适于用来处理wchar_t类型。iostream头文件的最新版本提供了作用相似的工具:wcin和wcout,用于处理wchar_t流。另外,可以通过加上前缀L来指示宽字符常量和宽字符串。

  2. char16_t:(unsigned)长16位,用u前缀表示char16_t常量,如u’C’和u"good";

  3. char32_t:(unsigned)长32位,用U前缀表示char32_t常量,如如U’C’和U"good";

可通过如下程序来查看各类型对应的长度

//通过sizeof()函数来计算类型的长度。
//注意参数是类型时,必须使用括号;如果是变量名时,括号是可选的。
#include <iostream>int main()
{using namespace std;cout << "char is: "<<sizeof(char) << endl;cout << "short is: " << sizeof(short) << endl;cout << "int is: " << sizeof(int) << endl;cout << "long is: " << sizeof(long) << endl;cout << "long long is: " << sizeof(long long) << endl;}

运行结果如下:

二、浮点型

类型 长度
float 4Byte
double 8Byte
long double 8Byte

可通过如下程序来查看各类型对应的长度

#include <iostream>int main()
{using namespace std;cout << "float is: "<<sizeof(float) << endl;cout << "double is: " << sizeof(double) << endl;cout << "long double is: " << sizeof(long double) << endl;
}

运行结果如下:

三、布尔型

布尔型为bool,只有两种取值,true 或 false,非0为true,0为false;

四、复合数据类型

4.1、数组(Array)

数组(Array)是一种数据格式,能够存储多个同类型的值

数组声明int month[12],创建一个int型的数组,该数组可以存12个int型的值

数组初始化

  1. int card[4] = {3,6,8,10};
  2. int hand[4] = {4}; 为hand[0]赋值为4,其余默认为0;
  3. int coub[] = {1,2,3,4,5}; 数组coub没有指定大小,其大小为赋值列表的个数

注意

  1. 数组的下标从0开始;
  2. 数组名是指针,是第一个元素的地址,即Array[0],因此数组访问时*(Arr + i) = Arr[i];
4.2、字符串

1、C-风格字符串(存储在一个char数组中)

定义:char dog[8] = {‘b’,‘e’,‘a’,‘u’,‘x’,’ ',‘I’,‘I’}; 不是字符串

​ char dog[8] = {‘f’,‘a’,‘t’,‘e’,‘s’,‘s’,‘a’,’\0’}; 是字符串

2、string类型字符串

string类,使用时要导入头文件#include<string>

字符串拼接:string = string1 + string2

4.3、结构体(Struct)

结构可以将多种不同类型糅合到一起形成一种新的数据类型

struct student{long ID;string name;
}

结构体使用:C++中可以省略struct,但是C中不可以省略

student s; s.name; 使用成员运算符访问内部成员

student *s; s->name; 如果定义的指针,必须使用指针成员运算符

初始化:可以逐个输入进行初始化,也可以使用值列表,例如student s = {1001,“张三”};

4.4、共用体(union)

共用体是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。

定义如下:

union one4all{int int_val;long long_val;double double_val;
}one4all pail;
pail.int_val = 15;                    //此时存储一个int值
pail.double_val = 1.38;               //此时存储一个double值
4.5、枚举(enum)

enum spectrum {red,orange,yellow,green,blue,violet,indigo,ultraviolet};

这条语句完成了两项工作:

  1. 让spectrum 成为了新类型的名称,spectrum 被称为枚举;
  2. 将red,orange,yellow等作为符号常量,它们对应的整数值0~7。这些常量叫做枚举量,只能将枚举量赋值给枚举类型的变量。

注意

  1. 设置枚举量的值:enum bits {one = 1,two = 2,four = 4,eight = 8};

    指定的值必须是整数,也可以只显式地定义其中一些枚举量的值:

    enum bigstep {first,second = 100,third};

    first在默认情况下为0,后面没被初始化的枚举量的值将比起前面的枚举量大1,所以third的值为101

  2. 枚举的取值范围:取值范围的定义,首先,要找出上限,先找出最大值,再找到大于这个最大值、最小的2次幂,将它减1,便得到取值范围的上限;例如最大的枚举值为101,按照定义它的上限为127。其次,要找出下限,需要找出最小值,如果最小值不小于0,则取值范围的下限为0;否则,采用寻找上限方式相同的方式,但加上负号;例如最小值为-6,而比它小的、最大的2的幂是-8,因此下限为-7。

C++ 数据类型总结相关推荐

  1. Postman使用Date数据类型,Postman发送Date类型数据,Postman模拟前端调用

    Postman使用Date数据类型: 在form-data数据类型下,使用 2021/7/7 11:11:00 (yyyy/MM/dd HH:mm:ss) 的数据格式即可 如下: 在json数据格式中 ...

  2. 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint

    在对比oracle数据库和大数据库的时候,发现了几个用以存放数字的新的类型bigint.decimal.smallint.tinyint,为了对比之间的不同,我进行了统计 bigint 可以精确的表示 ...

  3. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  4. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  5. 数据类型对应的字节数

    20210622 https://www.icode9.com/content-4-421680.html 32位和64位常用数据结构所占字节数 20210126 1 2 4 8 1248 刚好都是2 ...

  6. tensorflow2.0 基础一 常用数据类型及转换

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_43619065/arti ...

  7. 深入浅出Redis五种基本数据类型

    文章目录 1.String SDS(Simple Dynamic String) 2.RedisDB设计 3.List 4.Hash 5.Set intset 6.ZSet skiplist 1.St ...

  8. TVM自定义数据类型

    TVM自定义数据类型 本文将介绍"自定义数据类型"框架,该框架可在TVM中使用自定义数据类型. 介绍 在设计加速器时,关键是如何近似地表示硬件中的实数.这个问题具有长期的行业标准解 ...

  9. 自主数据类型:在TVM中启用自定义数据类型探索

    自主数据类型:在TVM中启用自定义数据类型探索 介绍 在设计加速器时,一个重要的决定是如何在硬件中近似地表示实数.这个问题有一个长期的行业标准解决方案:IEEE 754浮点标准.1.然而,当试图通过构 ...

  10. 基本数据类型转换规则

    基本数据类型转换规则 前言 一. byte.short.char运算的规则 二. 多种数据类型混合运算规则 三.总结 前言 在这篇文章中,我对Java的基本类型数据类型的混合运算做了一些总结,希望可以 ...

最新文章

  1. Aliyun LOG Java Producer 快速入门
  2. ASP.NET Razor – C# 变量简介
  3. crontab的用法
  4. Linux硬件信息查看
  5. 开发常识 持续更新~~
  6. flutter 富文本编辑器选择图片模糊_Flutter 到底香不香?看完这几个开源项目再做决定...
  7. 简单使用Boost线程池threadpool
  8. BZOJ 2004 公交线路(状压DP+矩阵快速幂)
  9. sql年月日加减法,计算两个日期之间的天数
  10. java泛型区间_JAVA 14(泛型)
  11. python-ppt1
  12. phabricator安装配置和使用(docker安装和独立部署)
  13. ASP.Net中控件的EnableViewState属性 (转)
  14. java通过反射调用有参数的方法
  15. 年轻时欠下风流情债的十大男女明星(组图)
  16. 编译原理实验三 自下而上语法分析
  17. DOSBox使用总结——调整DOSBox窗口并自动挂载指定目录
  18. android 磁场传感器应用
  19. 王者荣耀交流协会第6次Scrum立会
  20. html全选替换,网站上如何实现全选与反选

热门文章

  1. dvd清洗碟效果好吗_DVD影碟机使用小技巧 如何保养影碟机
  2. parm参数的用法与理解
  3. 2019 ICPC Asia-East Continent Final C Dirichlet k-th root
  4. 网站服务器和虚拟主机之间有什么区别?
  5. 最新哔哩bilibili视频弹幕播放器源码+完整无错带后台/亲测
  6. 2002年考研数学一真题pdf
  7. 6-1 客户机类 (10 分)
  8. Web前端105天-day32-Node.js
  9. 【转】Android 加速度传感器 (G-Sensor)
  10. RISC-V IDE MounRiver Studio软件介绍(四)