码迷,mamicode.com
首页 > 编程语言 > 详细

C++学习笔记30,指针的引用(2)

时间:2014-06-22 21:15:26      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:c++   指针的引用   

可以创建任何类型的引用,包括指针类型。

看一个简单的指针的引用的例子。例如:

#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;

}

输出结果:

bubuko.com,布布扣

这样看不明显,我们来简化一下例子,并通过调试来查看其变量地址以及值。

#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的值)

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

可以看到,rtp一直指向0x22fed8,而这个地址,正是&ptx的地址,从这里可以看出,引用一旦创建其指向不可改变,能改变的只是其值(ptx的值)!

这就是指针的引用,指向引用的指针请看下一篇博文!


C++学习笔记30,指针的引用(2),布布扣,bubuko.com

C++学习笔记30,指针的引用(2)

标签:c++   指针的引用   

原文地址:http://blog.csdn.net/qq844352155/article/details/32910093

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!