• int* &p 讲解


    这个是指针的引用

    通俗的讲就是给原来的指针重新起一个名字,使得两个指针的意思是相同的。

    这里有一篇文章的地址:https://zhidao.baidu.com/question/334477425.html

    int *(&p)是指针变量的引用。 指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误。
      引用就是给变量起个别名 ,这种变量必须初始化 。
      如int *a = &b; int *(&p) = a;
      p不占用内存,它只是a的别名,就像一个人两个名字而已。 所以p指针所指向的内容与a指针所指向的内容相同,即*a == *p;
      p在内存中存放的地址与a在内存中存放的地址相同,即 &p == &a。

    下面通过代码的实际例子进行让大家感受一下,这里有一篇博客和大家进行分享:

    funone(int *&pa,int *&pb)

    #include<iostream>
    using namespace std;
    void funone(int *&pa,int *&pb)
    {//可以说实现了双向传递,内部和外部的两个指针都影响。
        cout << "进入funone函数里面:" << endl;
        cout << "pa:"<<pa << "  pb:"<<pb << endl;
        cout << "a:" << *pa << "  b:" << *pb << endl;
        int *temp = pa;  
        pa = pb;
        pb = temp;
        cout << "在funone函数里面,进行指针的地址交换之后:"<< endl;
        cout << "pa:" << pa << "  pb:" << pb << endl;
        cout << "a:" << *pa << "  b:" << *pb << endl << endl;
    }
    int main()
    {
        int a = 100;
        int b =200;
        int *pa = &a;
        int *pb = &b;
        cout << "执行funone(pa,pb)之前:"<<endl;
        cout<<"pa指向的内容:"; cout << *pa << "  pb指向的内容:" << *pb << endl << endl;
     
        funone(pa,pb);
        cout << "执行funone(pa,pb)之后:" << endl;
        cout <<"pa指向的内容:"<< *pa <<"  pb指向的内容:"<< *pb << endl;
        cout << "a的地址:"<<&a << "    b的地址:" << &b << endl;
        cout << "b的地址(pa):"<<pa << "    a的地址(pb):" << pb << endl;
        cout << endl << endl;
        return 0;
    }
    ————————————————
    版权声明:本文为CSDN博主「你是木头人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chen1083376511/article/details/78571338

    打印结果:

    如果想要更加直观的感受指针引用,我们可以参考第二篇博文进行查看,写的非常的好。

    第一篇文章是关于指针引用的文字说明。

  • 相关阅读:
    Qt简介以及如何配置Qt使用VS2010进行开发
    QT里重定向另外一个控制台程序的输出
    windows下制作PHP扩展
    20款Notepad++插件下载和介绍
    音频编码协议介绍
    用 PHP 读取文件的正确方法
    QT进程间通信
    关于YUV色彩空间
    解析xml 四种
    System.getProperty
  • 原文地址:https://www.cnblogs.com/littleswan/p/12450093.html
Copyright © 2020-2023  润新知