变量就是任何我们在程序中使用的数据,能进行改变的数据存储在一个叫做变量的东西中。所以变量基本允许我们给一个存储在内存中的数据一个名字,这样我们就可以继续使用它。例如:你在做一个游戏,你游戏中有一个玩具,然后他角色在地图上有一个位置信息,角色可以移动,所以我们需要把玩家的位置存储在我们的内存中,作为一个变量。
当我们创建一个变量时,他会被存储在内存中的两个地方之一,堆或栈中。
原始数据类型基本上构成了我们在程序中存储任何类型数据的基础。C++中不同变量类型之间(原始数据类型)的唯一区别就是大小,就是这个变量占用多少内存。
int main(){ std::cout << Multiply(5, 8) << std::endl; std::cin.get(); }
int表示整数
定义一个新变量
int variable = 8; //带符号整数存储范围为 -2b - 2b b:十亿
int是4个字节(byte)大小的整型(传统上)。但是数据类型的实际大小取决于编译器。
修改变量
int variable = 8; //带符号整数存储范围为 -2b - 2b b:十亿 //std::cout << Multiply(5, 8) << std::endl; std::cout << variable << std::endl; variable = 20; std::cout << variable << std::endl;
最终输出
为什么说会有这个限制? 1byte是8bit,那么4byte就是32bit,因为数据有负的,所以它包含了一个符号,也就是一个负号,32bit中有一个就必须是符号,剩下的都是留给实际的数字,1bit有可能有0或1里两种可能,那么31bit每个bit有2中可能,那么2的31次方有多少值。
那么如果你不想要负数,那么在c++中你需要用到一个关键词unsigned 来获取。
char传统上用来存储字符的,你可以给他赋值字符,也可以给他赋值数字。就算给了char一个数字也会被转换成一个字符,这主要遵循ascll码
如果想存一个小数呢?例如5.5
我们就有两种类型可以使用float和double
float基本上是一个字节占用4byte
float variable = 5.5;
在这你认为你定义了一个float但是实际上是一个double
还有一个定义小数的double占8byte
double var = 5.3;
那么double和float如何区分呢?基本上就是float后面加上一个f。
你还会注意到一点就是加了f 之后你实际就声明了一个float。
bool 占用1byte 表示true或者false
我们可以看到一个值1,实际上没有真或者假这种东西,所以基本上0意味着false,其他则为true。为什么是1byte?因为当我们需要从内存中获取或者存储我们的bool时,我们没有办法寻址到每个bit,我们只能寻址到byte ,我们无法创建一个只有1bit的变量类型,因为我们需要访问他,我们现在只能访问byte,我们能做的就是将8个bool存在1个byte里面,那么就完全没有问题,每个bool占1bit,但你仍然只需要那一个byte的内存。
c++中有一个叫sizeof的 *** 作符用来检查数据类型的大小
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)