c++之引用和指针的区别和联系
2017-07-16 18:06
225 查看
区别:
1 引用不能为空(必须初始化),指针可为空。
2 引用关系一旦被建立,则不能被解除,而指针可以指向别人。
联系:
其实,引用的实现就是const类型的指针!但是c++不让你知道这个指针的地址
因此:
void f(int &x){}; 不可传入 f(3*i),而void f(const int &x)可传入f(3*i),可见,i*3是作为一个const型的临时变量存在内存中。
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型的临时变量存在内存中。
相关文章推荐
- 详解c++ 引用(reference)与 指针(pointer)的区别与联系
- c++引用与指针的区别与联系
- C++中引用和指针的联系和区别
- 详解c++ 引用(reference)与 指针(pointer)的区别与联系
- C++中引用与指针的区别与联系
- (整理)C++中指针和引用的区别和联系(待补充)
- c++中引用和指针的区别和联系
- 读thinking in java的收获(一)——java中的引用,c++引用与c指针的区别与联系以及java的数据类型
- C++中指针和引用的区别、联系及实例
- C++中指针和引用的区别与联系
- c++中引用和指针的区别和联系
- C++指针和引用的区别与联系
- C++中引用、指针,传值的联系和区别
- C++中指针(pointer)和引用(reference)的区别和联系
- C++之函数参数的值传递、指针传递以及引用传递的区别和联系
- C++指针和引用的区别与联系
- C++ 引用及其与指针的区别
- C++学习笔记 c++引用(&)与指针(*)的区别
- c++中,引用和指针的区别
- c++引用与指针的区别(着重理解)