指针和引用的区别

来源:互联网 发布:大芒果专用数据修改 编辑:程序博客网 时间:2024/06/11 20:19
1.指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已;
2.可以有const指针,但是没有const引用;
3.指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的);
4.指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;

5.指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了;

#include <iostream>using namespace std;int main(){int n1 = 10;int n2 = 100;int &rn = n1;int *pn = &n1;//pn指向n1cout<<"n1="<<n1<<",&n1="<<&n1<<endl;cout<<"rn="<<rn<<",&rn="<<&rn<<endl;cout<<"*pn="<<*pn<<",pn="<<pn<<endl;rn = n2;//rn依然引用n1(不是改变引用关系),在这里只是为n1赋值,将n2的值赋给n1pn = &n2;//pn指向n2cout<<"n1="<<n1<<",&n1="<<&n1<<endl;cout<<"rn="<<rn<<",&rn="<<&rn<<endl;cout<<"*pn="<<*pn<<",pn="<<pn<<endl;return 0;}

0 0
原创粉丝点击