第二章
2.1基本内置类型
2.1.1 算术类型
两类:整型(包括字符和布尔类型在内)和浮点型
其他字符类型用于扩展字符集,如wchar_ t
、char16_ _t
、char32_ t
。wchar_ t
类型用于确保可以存放机器最大扩展字符集中的任意一个字符,类型char16_ _t
和 char32_ _t
则为Unicode字符集服务(Unicode 是用于表示所有自然语言中字符的标准)。
带符号类型和无符号类型
除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的(signed) 和无符号的(unsigned) 两种。带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。
类型char、short、long和long long
都是带符号的,通过在这些类型名前添加unsigned
就可以得到无符号类型,例如unsigned long
。 类型unsigned int
可以缩写为unsigned
.
与其他整型不同,字符型被分为了三种: char、signed char和unsigned char
特别需要注意的是: 类型 char
和类型signed char
并不一-样。尽管字符型有三种,但是字符的表现形式却只有两种:带符号的和无符号的。类型char
实际上会表现为上述两种形式中的一种,具体是哪种由编译器决定。
练习2.1
类型 int、long、long long 和 short 的区别是什么?无符号类型和带符号类型的区别是什么?float 和 double的区别是什么?
C++ 规定 short
和 int
至少16位,long
至少32位,long long
至少64位。 带符号类型能够表示正数、负数和 0 ,而无符号类型只能够表示 0 和正整数。
**用法:**一般使用 int
做整数运算,short
因为太小在实际中用的少,long
通常和 int
有着相同的大小。如果数据非常大,超过了int的表示范围,可以使用 long long
。
如果你确认数据是非负的,那么就使用 unsigned
无符号类型。
执行浮点运算时用