C++指针、引用、const

int a = 3;
int *p = &a;    //定义指针p指向变量a
*p = 4;    //*p代表a的值

int b = 5;
p = &b;    //p指向变量b
*p = 6;    //此时*p代表b的值

int c[3] = {2,5,7};
p = c;    //此时p是指向数组c的指针,具体指向数组的第一个元素,即(&c[0]/p/c)三种写法等价
int a = 3;
int &b = a;    //定义引用b为变量a的引用,即a的别名(可理解为a的“外号”)
b = 6;    //给b赋值6即给a赋值6,此时a的值变为6

引用经典用法:
void ValueExchange(int &a,int &b)
{
    int temp = 0;     
    temp = a;
    a = b;
    b = temp;
}
ValueExchange(a,b);     //调用函数实现值交换,和c语言指针相比,c++的引用显然更加简便
const int a = 3;    //常量a = 3,const的含义即是被const修饰的值拒绝被修改

const int *p;
int const *p;    //两种写法等价,此时无法用*p来改变p指向的变量的值,因为*p被const所修饰

int * const p;    //此时p只能指向一个变量,之后不能指向其他变量,因为p被const修饰

const int &b;
int const &b;    //两种写法等价,&b无法被修改,即b引用的变量无法被修改,常用于上面的值交换类型函数,保护传入的变量数据的安全,拒绝被函数内部修改

 

posted @ 2017-05-07 00:32  james_lee  阅读(226)  评论(0编辑  收藏  举报