1 域运算符
局部变量可以隐藏与其同名的全局变量,这时如何访问全局变量呢?域运算符::可以提供对全局变量的访问。以域运算符为前缀的变量表示全局变量。
int var=10; //全局变量
fun()
{
int var; //局部变量
var = ::var; // 将全局变量的值赋给局部变量
}
2 断言assert
assert宏(在assert.h头文件中定义)测试表达式的值。如果表达式的值是0(假),则assert打印错误信息,并调用函数abort()以结束程序的执行。这是测试某个变量是否具有正确值的有用调试工具。
当不需要断言时,可在程序中插入
#define NDEBUG
则忽略后续断言。
3 常引用
使用const修饰符声明的引用为常引用。不能通过常引用更新对象的值,其定义格式如下:
const 类型 &引用名;
例如:
int m=10;
const int &n=m; //n是m的常引用
m=12; //正确
n=12; //错误