C++数据类型

来源:互联网 发布:万网域名证书查询 编辑:程序博客网 时间:2024/06/06 09:09

C++的基本数据类型有:整型,浮点型,字符型,bool型;

一,整型(int

表示方法是用int表示,这里的整型不是整数的意思,整型包括整数,字符;

整型在不同的操作系统中表示的在计算机内存中的位不一样,一般情况下是四个字节,因为计算机中的语言是二进制的,计算机的内存是要用来存储数据的,cpp就可以把不同类型的值写到内存的不同的位那里,计算机中的内存又分为很多中,渣,堆,自由存储,一般情况下cpp中的数据写在渣中;

二进制

何为二进制,二进制就是010101010表示的语言,我们常用的是十进制,十进制中的10在计算机语言中为1010,我们所说的10为什么在计算机语言中是1010啊,因为计算机中的1010他转换成十进制的算法是,从右边开始,0*2^0+1*2^1+0*2^2+1*2^3=10;0*2^0的意思是,第一个0是他的本身值为0,第二个0是从最右边起的第一位就是0,依次类推;二进制通常是使用在计算机本身的内存中,所以我们实际操作的时候用10进制的比较好;计算机存储数据的位,一般是8个位组成一个字节;

计算机中的位

上面叫位啊?0000 0000这就是8个位,如果用计算机中的语言二进制表示,他的最大数据可以一是1111 1111,也就是81,这个是无符号的表示法,0000 0000 0000 0000 0000 0000 0000 0000 0000,这是一个常规整型数据在计算机中的位的表示法,这个整型的数据位是不是已经给定了呢?答案是肯定的,那么他的值是不是有一个取值范围啊,他的值可以为1111 1111 1111 1111 1111 1111 1111 1111 ,用二进制转换成10进制的话,他的最高位231次方,但是这只是全部是1的情况,这中间的1可以是0啊,所以说int表示的10进制数值可以是非常大的;计算机中的位是怎么定的呢,这个cpp中自己定义的,他让哪个类型占多少个位就多少个位,那么int类型为什么是32个阿

字节

字节这个一般情况下在计算机中占8个位一个字节,int类型为什么说是4个字节呢?这个不是我们说的,这个是操作系统自己规定的嘛,因为操作系统也是cpp写的哦,用sizeofint)他就能返回出int类型在此操作系统中所占的位;

整型有以下各种类型:

Long int长整型,一般是4个字节,不确定自己去用sizeof()查;

Short int短整型,一般是2个字节;

Unsigned int无符号整型;

Unsigned short int无符号短整型;

长整型或短整型,无符号或有符号这都是为了给这个int定一个范围而已,无符号表示的是数值前面没有-的,现在我们知道了cpp中有这个数据的类型,但还不知道怎么用,下面就给出简单的使用方法:

定义变量类型

上面叫变量呢?变,不变,变,这个是可以变的吧,量呢?不管字面是什么意思了,现在我告诉你,变量就是存储数据的,我们定义变量用数据类型和英文字母表示,为什么要是英文字母啊?这就好比你老板为什么每天让你那个时候准时上班一样,首字母最好用英文,不然出错了不负责哦,int a 这个是定义了一个a的变量,他的类型是整型,不是说变量是存储数据的吗?我怎么没看到数据啊?这个是有数据的,他的值在计算机内存中的一个地方,这个数据是cpp自己内部分配到计算机的,他在计算机中是有地址的,也就是这个数据在计算机中占32个位的某个地方,那么值是几多啊呢?cpp中默认的是开闭一个32位位都是0的渣中,你算一下是几多啊呢,320啊,不是0吗;

堆中存储

刚刚不是在渣中存储好好的吗,为什么又搞出一个堆啊,这不是我要搞啊,cpp要搞,那么我们也要搞了,我只认识堆这个字,但是怎么控制他啊,刚刚不是说了cpp中存储数据的都是用计算机二进制语言存储到内存的吗,指针,指针一看就是很小的东西啦,不错,他就是用来找数据的计算机中的位置的,也可以用来写到计算机内存中的,你说一下,计算机中的语言是二进制,我现在也用二进制的来和你对话,我就不相信存不进去了,结果是计算机中存进去了;指针用(类型*)表示,这个意思是指向指针的类型,int * a 这个是指向指针的int类型,此时的a是(*a)在计算机中的地址,(*a)这个是解除指针引用,也就是值了,好了 int *a 这个是系统自己分配到计算机内存的,现在我要把他放到堆里面,那么此时就要用到new啦,int * a=new int;用这个变量的值就用(*a),用地址就直接a

上面那个int a使用的时候也可以使用值或地址,值直接a,指针就在a前面加&,也就是&a

定义函数类型

这里先不谈函数是怎么定义,反正当函数有返回值的时候就要在头前面加一个类型进去,此时的函数是怎样存储在内存的,和上面基本原理一样,有渣,有堆,有地址,有值;

使用类型的变量

正常定义变量int a那么我们就正常使用,使用值用a,地址用&a

不正常定义变量int * a(*a)表示值,a表示地址

更不正常的使用int &a,看清楚了,这个定义变量的时候使用了前面那个int a的地址&a,既然地址是一样的,那么那个地方的值也应该是一样的啦,这里先不谈类型变量赋值问题;

 

 

二,浮点型(float

Doublefloat 双精度浮点型

Float单精度浮点型

Unsigneddouble float无符号双精度浮点型

Unsignedfloat 无符号单精度浮点型

浮点型数据总体来说在计算机中占的位比整型的要大,位多,这些修饰词都是在对浮点型数据进行定范围的

类型转换

假如我定义一个变量int a此时的a是一个整型的数据,我再定义一个double b,这个时候他们在计算机中的内存那个要大啊?答案是double类型的,double64位,int32位,我们要把他们的类型进行转换,肯定是要把小的转换成大的啊,大的转换成效的,你想一下这么小的块能装得下吗,所以类型转换的时候必须的是把在计算机中占位较小的转换为大的类型;(double a)这个意思是把a强制转换成double类型的,a开始是int类型的比double类型在计算机中占的位小,所以没问题;

定义float类型变量

Float a正常定义

Float *a=new float指针定义

三,字符型(char

Unsigned char无符号字符型

Char有符号字符型

Char占一个字节,0000 0000 就这么多,最大值是256吧而且还是无符号的

定义char类型变量

正常定义 char a

不正常定义 char *a指针定义

四,bool类型,truefalse

 

注意:几个类型是cpp中的数据类型,我在使用别人的api接口的候,他都是把些类型行了展,所以在使用别人的接口首先要看下数据类型明文件,就简单,cpp类型就么几个主要的!

原创粉丝点击