刚刚开始学c++,总结一下最近所学。
c++的自由性与java相比表示得十分显著,基本的说起,指针的涉及就很广泛。
几个可能会混淆的概念:
const int *p 指向常量,只读不可改
int const *p 同第一个相同(修饰顺序无影响)
int *const p 指针常量,即指针不动
const int *const p 不可动也不可改(只读)
引用
int a =2;
int &ra=a;
与被引用变量共享内存(区别:指针会单独分配空间)
引用一旦定义不可改变(也必须初始化)
【有时声明为const int &ra=a 可以增加灵活性,局部声明内部固定外部可修改】
const引用
const int a=1024;
const int &r1=a;
int &r2=a(x非常量引用不可指向常量)
int b=12
const int &r3=b;(允许绑定,但不允许r3修改b)