引用其他文件的变量 extern int a; const int a; 只读常量,不可修改 static int a; 如果出现在类中,及时类没有被初始化,该变量依然存在 void show(const int a) 加了const之后可以接受 const或者非const 类型的参数,且a不可改变 void show( int a) 函数内部a 是一个值, 但这个a是当前函数中a值得副本 void show( int &a) 函数内部a 是一个值,这个a是当前函数中a地址的副本,相比上面语法的减小复制的开销 void show( int * a) 函数内部a 是一个指针。 传递地址,i不能改变原函数中的a int a=1; show(a) void show(const int &i) 传递地址,i能改变与函数中的a int a=1; show(a) void show(int &i) 传递指针,指针指向的值不可修改 int a=1; int *p = &a; show(&p) void show(const int * i) 传递指针,指针的地址不可修改(指针不能指向其他对象,没什么用),这里既是修改了i也不会对a有影响。因为i只是p的一个拷贝 int a=1; int *p = &a; show(p) void show( int * const i) 类创建之后会实例化成员 指针一定要被释放 vector push时 是复制元素 什么时候需要用指针 初始化时需要参数 数据传递,避免复制 可能不会被实例化的对象