1 整型变量越界
(1) unsigned类型会与范围求模;
(2) signed类型基本同上,个别编译器有例外(测试g++, vs2012同上);
2 浮点类型
(1) 浮点类型的存储方式为:符号位+指数位+尾数位;
详见:维基百科 - 浮点数;
(2) 一般使用double类型,float类型精度不足;
(3) 注意,浮点数为近似数,适用于科学计算,不适用于精确计算;
3 字符串字面值
(1) 为了兼容c语言,c++的所有字符串字面值都由编译器自动在末尾添加一个空字符;
例如 'A' 表示单个字符A,而 "A" 表示包含字母A和空字符的字符串;
4 变量
(1) 变量是左值;
关于“值”的概念,详见:
维基百科 - 值 (计算机科学);
(2) 变量初始化有复制初始化(=)和直接初始化(())两种形式;
注意
变量初始化不等于变量赋值,具体体现在类等复杂的数据类型中;
5 const与引用
(1) 非const变量默认为extern,要使const变量能在其他文件中被访问,需显式指定其为extern;
(2) 非const引用只能绑定到与该引用同类型的对象;
而const引用可以绑定到不同但相关类型的对象或右值上,因为const引用是只读的;