您的位置:首页 > 编程语言 > C语言/C++

c++之引用和指针的区别和联系

2017-07-16 18:06 225 查看
区别:

1 引用不能为空(必须初始化),指针可为空。

int &a; // error
int *a; // ok


2 引用关系一旦被建立,则不能被解除,而指针可以指向别人。

int x = 1, y = 2;
int &a = x;
a = y;   // x = y = 2
执行后,x=2, y=2

int x = 1, y = 2;
int *a = &x;
a = &y;
执行后,x=1, y=2

联系:

其实,引用的实现就是const类型的指针!但是c++不让你知道这个指针的地址

因此:

int &*p // error, 不允许使用指向引用的指针
int *x = NULL;
int *&p=x; // 合法,P捆着的变量是int型的指针


void f(int &x){}; 不可传入 f(3*i),而void f(const int &x)可传入f(3*i),可见,i*3是作为一个const型的临时变量存在内存中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: