C++ Primer学习笔记——基本类型
c++的基本内置类型包含算数类型和空类型。
算数类型有整形,浮点型,字符,布尔类型。
空类型,即void。
其中,整形和浮点型包含带符号和不带符号(unsigned)。带符号的类型可以表示正数、负数和0,无符号类型只能表示0和正数。
正常的情况下,字符类型一般占一个字节,即8Bits,unsigne char一般表示整型0-255的范围,char一般表示为-127-127的范围。

类型转换包括隐式转换和显式转换两种,这里先讲隐式转换,当中比较重要的一点就是,当我们给一个无符号类型的变量赋一个超出它本身范围的值时,其结果会变成初始值对该无符号类型范围最大值取模后的余数。例如,-1赋给unsigned时,-1%256=255,结果为255。
举一些比较有意思的例子:
当上面的u与i相加时,i会转变成无符号类型unsigned int,把-42赋给无符号类型整数,然后再与u相加,得出一个非预期的结果,具体需要看机器是多少位的。
上面的结果是:循环永远不会结束。因为在循环到-1时,unsigned没法表示-1,因此会将-1转换成unsigned int类型,得出一个很大的整数,最后导致死循环。
切勿混用带符号类型和无符号类型

字面值常量表示的是值的本身,如42表示整型字面量,true表示bool型字面量
整型字面量可以用十进制,八进制(0开头),十六进制(0x或0X开头)来表示,如42,042,0xF等。
字符串字面值结尾会带'\0'来标识字符串结束,单引号用于表示单个字符,双引号用于表示单个字符串。
转义字符用于表示一类特殊含义的字符和一类特殊标点符号的字符(?等)

