1.一般的,short类型为半个机器字长,int类型为一个机器字长,而long类型为一个货两个机器字长(在32位机器中int类型和long类型通常的字长是相同的)
2.当我们试着把一个超出其取值范围的值赋给一个指定类型的对象时:
■对于unsigned类型来说,编译器通过调整越界值使其满足要求.编译器会是该值对unsigned类型的可能取值的数目求模,然后取所得值;
■对于signed类型与unsigned基本一致.
3.一般float类型用一个字(32位)来表示,double类型用两个字(64位)来表示,long double类型用三四个子来表示.并且float类型的精度是不够的-它只能保证6位有效数字;而double至少保证10位有效数字.
4.为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符.处理长字符串有一个基本的方法,这个方法依赖很少使用的程序格式特性:在末尾加一反斜线符号可将和此行和下一行当作同一处理.(这个在<MFC深入浅出>一书中有过使用)
例如:std::cou/
t<<”HI”<<st/
d::endl;
等价于:std::cout<<”HI”<<std::endl;
5.内置类型的变量是否自动初始化取决于变量定义的位置.在函数体外定义的变量都初始化为0,在函数体内定义的内置类型变量不进行自动初始化.string类定义了默认的构造函数来初始化string变量为空字符串.
6.通常把一个对象的定义在它首次使用的地方,这样读者无需返回代码段的开始位置去寻找某一特殊变量的的定义,而且在此处定义变量,更容易给它赋予有意义的值.
7.因为常量再定以后就不能修改,所以定义时必须初始化.除非特别说明,在全局作用域声明的const变量是定义该对象文件的局部变量,此变量只存在于那个文件中,不能被其他文件访问.通过指定const变量为extern(在定义时指定),就可以在整个程序(其他文件中,但是要加上extern)中访问const对象.
8.定义引用时要初始化,将普通应用绑定到const对象是不合法的另外,非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的类型的对象或绑定到右值.