C++_CH04_变量
1.1变量类型
变量类型决定了变量分配空间的大小。
用int类型举例,如果是32位的计算机,一个int类型是4个字节,一个字节是8bit,每一位都有0或1两种可能。而对于单纯的int类型(不是unsigned int),首位表示正还是负。因此共31位来存储数字。则取值范围为
-2^31~2^31
因此能存储的数字大概是正负21亿。
如果不想要负数,就是将表示符号的首位变成跟其他位一样。即无符号整型(unsigned int),此时的取值范围是:
0~2^32
这里以int和unsigned int举例。C++和C语言是一样的,具体关于变量的类型和他相关的反码、原码、补码,可以看我写的C语言博客:
C语言和C++的数据存储
1.2C++有而C语言没有的类型--------bool
bool类型取值true \false。
0为false,除此之外都是true。
#include <iostream>
int main()
{
bool var = true;
bool var2 = false;
std::cout<<var<<std::endl;
std::cout<<var2<<std::endl;
std::cin.get();
}
output:
1
0
bool类型虽然能够用一个bit就可以表达(0,1)但是计算机寻址只能寻找到字节。因此一个bool类的空间大小为1字节。为了证明这一点,我们用sizeof()来看看:
#include <iostream>
int main()
{
bool var = true;
bool var2 = false;
std::cout<<sizeof(var)<<std::endl;
std::cout<<sizeof(bool)<<std::endl;
std::cout<<sizeof(true)<<std::endl;
std::cin.get();
}
output:
1
1
1
可以修改sizeof()里面的变量类型,来看看。