一、C++内置数据类型:字符型,整型,浮点型,bool值等。C++还提供了自定义数据类型机制,标准库正是利用这种机制定义了许多更加复杂的类型,比如可变长字符串string、vector等。还能修改已有的类型以形成复合类型。
1、整型
表示整数、字符和布尔值的算术类型称为整型。
内置类型的机器级表示:C++内置类型与其在计算机的存储器中的表示方式紧密相关。每一位存储0或1,在位这一级上,存储器是没有结构和意义的。让存储器具有结构意义的最基本方法就是用块(chunk)处理存储。块的位数一般都是2的幂次方,因为这样可以一次处理8、16、32位。现在64和128的块如今也变的很普通。但通常将8为称为一个字节,32位或者4个字节称为一个“字”(word)。
思考:整型的赋值:若我们试着把一个超出其取值范围的值赋予给一个指定的类型的对象时,结果会怎么样?
答案取决于这种类型是signed还是unsigned的。对于unsigned类型来说,编译器会自动调整越界值使其满足要求。编译器会对该值unsigned类型的可能取值数目求模,然后取得其值。 对于unsigned的类型,负数总是超出其取值范围的。unsigned类型的对象可能永远不会保存负数。有些语言将负数赋值给unsigned类型是非法的。但c++中是合法的。
C++中整型被设计成允许程序必要时直接处理硬件,因此整型被定义成满足各种各样的硬件特性,大多数程序员可以通过限制实际使用的类型来忽略这些复杂性。
不要使用short和signed char用作计算类型,因为会隐含赋值越界的错误,会出现截断“wrap around”,以至于因越界而变成很大的负数。在实际运用中int用16位表示,对于多数应用来说太小了。实际应用中,通用计算机都是和long类型一样长的32位来表示int类型。
2.浮点类型
double类型比float类型的计算速度快的多,所以一般都可以使用double来处理。