1.C++将非零的值解释为TRUE,将零解释为FALSE.任何数字或指针都可隐式转换为bool值。任何非零值被转换为TRUE,零值被转换为FALSE。
2.对于超越变量范围的赋值,其值将为范围另一端的取值。变量在内存中的存储可以看成一个环。以short为例。无符号short,0位重置点,从0至65535依此增大,
65535+1为0,0-1为65535。有符号short,从0至32767依此增大,然后为重置点。然后为-32768至-1依此增大。即32767+1为-32768,0-1为-1。
3.C++进展控制符为dec,hex,oct。分别对应十进制,十六进制和六进制。当使用一个进制控制符后,后面的所有输出都为改变后的进制输出。
4.char在默认情况下既不是有符号,也不是没符号。是否有符号由C++实现决定。
5.cin,cout将输入输出流看做是char流。想处理wchar_t要使用wcin和wcout。
6.计算机将浮点数分为两部分存数。一部分表示值,一部分用于对值进行放大或缩小。其中缩放因子为2的幂而不是10的幂。
7.浮点运算比整数运算慢,并且精度将降低。因为多超过精度的部分修改不影响修改结果。如float a = 2.34E+22f。float b = a + 1.0f; b - a = 0; 而不是1。
8.C++整数除法截取整数部分。
9.将浮点数赋给整数,若数的大小在范围内则截取整数部分。若超出整数最大存数范围,则结果可能是任意的。将低精度赋给高精度,则将扩展出一个高精度数存储在高精度变量中,低精度数值、精度不变。
10.自然长度指的是计算机处理起来最快的长度,一般为int。
11.初始化列表初始化很严格。不允许缩窄,即变量的类型可能无法表示赋给他的值。不允许以变量赋值,即使当前变量已经初始化。
char c1 = {3124}; int x = 66; char c2 = {x}; 都是不允许的。使用大括号初始化,默认值为0。
12.在计算表达式时,bool,char,short,unsigned char,singed char和short都将转为int。这些转换称为整形提升。当运算设计两种类型时,较小的类型将被转为较大的类型。
13.强制转换不会修改变量本身,而是创建一个新的、指定的类型的值。这个值可以在表达式中使用。
14.在表达式终于使用关键字auto,编译器把变量的类型设置成与初始值相同。处理复杂数据类型,如STL时,自动类型推断的有时才能显示出来。
15.在大括号内定义括号外已有的变量,新变量将隐藏旧变量。在出大括号后,原变量可见。