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

来源:互联网 发布:用c语言输出直角三角形 编辑:程序博客网 时间:2024/06/08 09:39

区别:

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

int &a; // errorint *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型的临时变量存在内存中。



原创粉丝点击