5.在程序中不论把浮点数写成小数形式还是指数形式,在内存中都是以指数形式存储的。例如不论在程序中写成314.159或314.159e0,31.40159e1等形式,在内存中都是以规范化的指数形式存放。
8.如果在一个字符串中最后一个字符为“\”,则表示它是续行符,下一行的字符是该字符串的一部分,且在两行字符串间无空格。
14.指定每一个变量属于一个特定的类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。例如,整型变量a和b,可以进行求余运算;如果将a和b指定为实型变量,则不允许进行“求余”运算。
15.如果对变量未赋初值,则该变量的初值是一个不可预测的值。
16.初始化不是在编译阶段完成的(只有静态变量和全局变量初始化是在编译阶段完成的),而是在程序运行时执行本函数时赋予初值的,相当于执行一个赋值语句。如:int a=3;相当于int a; a=3;22.两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是如果除数或被除数中有一个为负值,则舍入方向是不固定的。多数编译系统采取“向零取整”的方法,即-5/3的值为-1.
23.取模运算符%的两个操作对象都必须是整数.结果的符号与%左边的操作数的符号相同.如20%6的结果为2,-45%8的结果为-5,45%-8的结果为5.
24.
图中横向向左的箭头表示必定的转换,纵向的箭头表示当运算对象为不同类型时转换的方向。如果一个int型数据与一个double型数据运算,是直接将int型转成double型。
25.自增运算符和自减运算符只能用于变量,而不能用于常量或表达式,如5++和(a+b)++都是不合法。26.-i++应理解成-(i++),因为后置++(或--)优先级高于负号运算符。前置++(或--)跟负号运算符优先级相同,但是由于“从右向左”结合,---i应理解为-(--i)
27.许多编译系统(包括Visual C++6.0和GCC)在处理输出流时,先按自右向左的顺序对各输出项求值
28.
大多数C++系统把3作为表达式中所有i的值,因此3个i相加,得到表达式的值为9。在求出整个表达式的值后再实现自加3次,i的值变为6。
29.如果要进行强制类型转换的对象是一个变量,该变量可以不用括号括起来,如果要进行强制类型转换的对象是一个包含多项的表达式,则表达式应该用括号括起来。(int)(x+y)30.(int)x如果x原指定为float型,值为3.6,进行强制类型运算后得到一个int型的中间变量,它的值等于3,而x的原来的类型和值都不变。
31.赋值运算符右边值的类型与左边变量的类型不一致,以左边变量的类型为准.
32.将浮点型数据赋给整型变量时,舍弃其小数部分。如i为整型变量,执行"i=3.56"的结果使i的值为3,在内存中以整数形式存储。33.将整型数据赋给浮点型变量时,数值不变,但以指数形式存储在变量中。
34.将字符型数据赋给整型变量时,由于字符型 数据只占1个字节,而整型占4个字节,如果所用系统将字符处理为无符号的量,高位将补0,如果所用系统将字符处理为带符号的量(signed char),则进行符号扩展.
35.将带符号的整型赋给长整型时(长整型带不带符号不影响内存内容),也需要进行符号扩展
36.(a=3*5)=4*3,实际上是将4*3的积12赋给变量a,而不是赋给3*5。正因为这样,赋值表达式才能够作为左值。赋值表达式的值就是被赋值变量的值.39.在用cout输出一个逗号表达式的值时,要将逗号表达式用括号括起来,如:cout<<(3*5,43-6*5,67/3)< 40.条件表达式中,表达式2和表达式3不仅可以是算术表达式,还可以是赋值表达式或函数表达式.表达式1的类型可以与表达式2和表达式3的类型不同.表达式2和表达式3的类型也可以不同,此时条件表达式的值的类型为二者较高的类型. 41.在右移时,要注意符号位问题.如果移位对象是无符号数,那么右移时左边空出来的位全以0填充,这种方式称为逻辑右移方式;如果移位对象是有符号数,当移位对象是正数(符号位为0)时,左边空位用0填充;当移位对象是负数(符号位为1)时,左边空位是补0还是补1,要取决于所用的计算机系统.有的系统按逻辑右移方式(即补0)处理,有的系统则按算术右移方式(即补1)处理.VC6.0按算术右移处理. 42.两个长度不同的数据进行位运算的时,系统会按二者右端对齐.如果是无符号数,补0.如果是有符号数,进行符号扩展. 43.位逻辑运算符&,|和^两个运算分量是可交换的;而逻辑运算符^^和||的两个运算分量是不可交换的.并且它们严格执行自左至右的运算.下面看个例子: int x,y,z; x=y=z; --x && ++y || z++; 最后x,y,z的值为何? 分析一下,由于运算符&&的优先级高于运算符||,所以运算顺序自左至右,因而先做--x,其结果是:x的值变为0.这样,"--x && ++y"表达式的结果就已确定,所以++y不再执行,y的值仍然为1;但对于运算符||来说,左分量为0,尚不能确定整个逻辑表达式的值,帮执行其右边的表达式z++,最后z值变为2.