C++入门基础-常见的数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dengminghli/article/details/79022780

上节课回顾

##基本框架:
#include<iostream>//头文件,相当于我们要用的工具包
using namespace std;//命名空间,指定工具包里面的工具
int main(){     //主程序入口,必写

    return 0;  //结束标志,必须返回0
}

输入输出:

这里写图片描述

基本数据类型

这里写图片描述

整数型

关于整数型,上节课已经接触到其中的int类型的基本使用格式。接下来将展示其一些功能,作用和使用范围。
在计算机中,因为处理器对数据的处理方式和传统数学不一样。因此严格将各种数据进行区分。整数型,则意味着尽可以存储整数,而不能存储其他的数据类型。如果你输入的是一个浮点数,则会把除了整数意外的所有小数丢失,只保留其整数部分,这在计算机中称之为精度丢失
例如:

而在整数这个层面上,依据存储空间的不一样,分成三个部分:短整型,基本整型,以及长整型,这三部分的判断依据就是他们的存储空间,即各自拥有的字节数,查看字节数的方式为:sizeof(基本数据类型)方法。
比如:
这里写图片描述
那么,字节数代表什么意思呢?就是指可以存储的数的大小,字节数越大,可存储的数字就越大,这三部分可存储的整数的范围为:
这里写图片描述
细心的同学可以发现,long long的取值范围包含int,而int 的取值范围又包含了short,那我们为什么还要分成3个部分而不是直接用long long 呢?因为从字节大小来看,long long 占的内存空间比其他的类型都大,而内存过大也会影响程序的运行。因此区分使用这三个数值的范围就是取值范围,一般来说,都用int就可以满足基本的使用,除了特殊情况特殊对待外。

浮点型

浮点型对应的是浮点数,即我们说的带有小数点的数。比如:1.123,对于浮点数来说,有两个基本数据类型,分别是单精度(float)和双精度(double),在日常的使用中,一般使用double,特殊指示情况下,用float即可。他们的字节数为:
这里写图片描述
关于如何控制输出小数电后几位的问题,格式如下:

#include<iomanip>//在头文件处插入该头文件
...
cout <<fixed <<setprecisopn(要输出的几位数)<<要处理的数据;

字符型

关于字符型,这是个比较特殊的数据类型,因为字符型的本质其实就是整型。为什么这么说,这里就要涉及到我们课堂上说到的ASCII码,在计算机发展的早期,我们一般都用来处理数字,也就是数据计算。第一台计算机被研发的初衷也正是为了计算导弹的运行轨迹。所以在计算机的早期,并没有字符型一说。后来,到计算机开始发展起来的时候,我们需要用一些字母来表示我们要表达的信息,但是计算机上只有数字表达,没有字符表达。因此,字符型便应运而生,它在整型数字的基础上进行了修改,通过早期的ASCII码的方式,实现数字和字母的转换。后来ASCII码的发展跟不上计算机发展的过程之后,逐渐又在其基础上进行了拓展,形成UNICODE码,但目前,c++仍保留了ASCII码的使用,因此我们只需要掌握ASCII,即常见标准字符和整型数字的相互转换。ASCII码如图:
这里写图片描述
图中红色方框圈的位置需要同学注意,是我们常用的一些字符的对照格式,请务必记住:
零48,大A65小97
大小相差32

关于使用,char类型和int类型可以实现相互转化。即在ASCII范围内,同一个十进制数,如果是int类型的变量存储,则表示为int类型,如果是char类型的变量存储,则表示为字符。例如:
这里写图片描述
而因为我们说char实际上也是int类型,所以我们也可以用字符进行加法运算:
这里写图片描述
注意,32为大写字母和小写字母的数值差。因此我们可以通过大写字母+32或者小写字母-32的方式进行大小写的转换。

布尔型

关于布尔型,实际上就是“是与不是的问题”,它只有两种表达方式,分别为true,表示真,false,表示假。而这两者的区别也可以用整型来表达,具体为:
默认为false,非零为true,灵为false。
意思是,如果只定义一个布尔变量,不初始化的话,会默认为false,当初始化的值为0时,为false,其他值都为true。

数据类型的转换

数据类型的转换是指,有时候我们输入的数据是整型,但要求
输出的是浮点型。比如我们的求平均数。那么就要用到我们的数据类型转换。它有两种方式。

自动转换

自动转换意思为计算机自动为我们进行转换,这里和我们的数据类型的字节数相关,当我们两个不同类型的数据类型进行算法运算或者赋值运算时,计算机会判断哪个类型的数据类型的字节数大,那么最后的结果会自动转化为该数据类型,比如:
这里写图片描述
在这里,当我们是int/double时,因为double类型的字节数比int大,所以会把结果显示为0.5;
而int/int时,因为两者都为int,字节数相等,所以输出为int,即为0,此时出现精度丢失情况。
注意当整型和浮点型进行运算时,结果会默认为浮点型,就是为了避免出现精度丢失的情况。

强制转换

强制转换和自动转换相反,是我们只需要输出字节数小的数据类型时,但计算机已经默认帮我们转化为字节数较大的数据类型了。此时就需要进行强制转换。其格式如下:

要转换成的数据类型(需要转化的数据)
例如:int(a);

同样以整型和浮点型来对比,例子为
这里写图片描述

猜你喜欢

转载自blog.csdn.net/dengminghli/article/details/79022780
今日推荐