首页 > 代码库 > C++学习笔记30,指针的引用(2)
C++学习笔记30,指针的引用(2)
可以创建任何类型的引用,包括指针类型。
看一个简单的指针的引用的例子。例如:
#include <iostream> using namespace std; int main(){ int x=10; int y=20; int z=30; int* ptx=&x; int* ptz=&z; //指针的引用,声明从右往左看,rtp与&结合, //剩余的符号和左边结合 //引用一旦创建,不能改变其指向,只能改变其值 int* &rtp=ptx; cout<<"&x="<<&x<<endl; cout<<"&ptx="<<&ptx<<" "<<"&rtp="<<rtp<<endl; cout<<"ptx="<<ptx<<" "<<"rtp="<<rtp<<endl; cout<<"*ptx="<<*ptx<<" "<<"*rtp="<<*rtp<<endl<<endl; ptx=&y; //ptx的值改变了,rtp的值也相对改变了 //但其指向不变 cout<<"&y="<<&y<<endl; cout<<"&ptx="<<ptx<<" "<<"&rtp="<<rtp<<endl; cout<<"ptx="<<ptx<<" "<<"rtp="<<rtp<<endl; cout<<"*ptx="<<*ptx<<" "<<"*rtp="<<*rtp<<endl<<endl; rtp=ptz; //rtp的值改变了,ptx的值也相对改变了 //但rtp指向不变 cout<<"&ptz="<<&ptz<<endl; cout<<"&ptx="<<ptx<<" "<<"&rtp="<<rtp<<endl; cout<<"ptx="<<ptx<<" "<<"rtp="<<rtp<<endl; cout<<"*ptx="<<*ptx<<" "<<"*rtp="<<*rtp<<endl<<endl; }
输出结果:
这样看不明显,我们来简化一下例子,并通过调试来查看其变量地址以及值。
#include <iostream> using namespace std; int main(){ int x=10; int y=20; int z=30; int* ptx=&x; int* ptz=&z; //指针的引用,声明从右往左看,rtp与&结合, //剩余的符号和左边结合 //引用一旦创建,不能改变其指向,只能改变其值 int* &rtp=ptx; ptx=&y; //ptx的值改变了,rtp的值也相对改变了 //但其指向不变 rtp=ptz; //rtp的值改变了,ptx的值也相对改变了 //但rtp指向不变 }单步运行截图:(看ptx和rtp的值)
可以看到,rtp一直指向0x22fed8,而这个地址,正是&ptx的地址,从这里可以看出,引用一旦创建其指向不可改变,能改变的只是其值(ptx的值)!
这就是指针的引用,指向引用的指针请看下一篇博文!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。