引用其他文件的变量
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时  是复制元素

什么时候需要用指针
初始化时需要参数
数据传递,避免复制
可能不会被实例化的对象