变量和基本类型
-
C++定义了基本数据类型:算数类型(
arithmetictype
)和空类型(void
),其中算数类型包括:字符、整型数、布尔值、浮点数,而空类型不对应具体的值,当函数不返回任何值时,使用空类型作为返回值。 -
算数类型分为两种:整形(字符和布尔类型)和浮点型 ,值得一提的是布尔类型(
bool
)的取值是真(true
)或假(false
),基本的字符类型是char
,一个char
的大小为一个字节,C++语言规定一个int
至少和一个short
一样大,一个long
至少和一个int
一样大,一个long long
至少和一个long
一样大(在32位编译器上int
:4个字节),浮点型可表示单精度、双精度、扩展精度值,通常float
以1个字节(32bit,存储的基本单位称为“字(word)”,它通常由几个字节组成,字节是可寻址的最小内存块)表示,double
以2个字来表示,long double
以3或4个字来表示,类型float、double
的有效位分别为7与16位,long double
则常用于由特殊浮点需求的硬件。 -
带符号类型和无符号类型:除布尔型和扩展的字符型外(
wchar_t、char16_t
等等被称为扩展类型),其余均可被划分为带符号的(signed
)与无符号的(unsigned
)两种,带符号可以表示正整数、0、负数,无符号仅能表示大于等于0的值。 -
通常在
int、short、long、long long
这些带符号前加上unsigned
便可得到无符号类型,其中unsigned int
可以缩写为unsigned
。 -
字符型被划分为三种:
char、signed char 和unsigned char
,无符号类型中所有bit都用来存储值,如8bit的unsigned char
可以表示0~250区间内的数值。 -
如何选择类型:
(1)当知晓数值不为负时,选用无符号类型;
(2)使用int
做整数运算,因为在实际运用中,short
常常显的太小,而long
与int
有一样的尺寸,如果超过了int
的范围就使用long long
;
(3)在算数表达式中不要使用bool
或char
,只有在存放字符或者布尔值时才使用它们;
(4)执行浮点运算用double
,因为float
通常精度不够,而双精度和单精度的计算代价相差无几。