当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

指针引用与引用之间的区别

      感觉指针和引用之间的奇妙,写了两端代码以搞清楚指针引用和引用的用法


    读C++primer 一书

    感觉指针和引用之间的奇妙,写了两端代码以搞清楚指针引用和引用的用法


    #include <iostream>

    using namespace std;

    int main(void)
    {
     int  ival1 = 1024 ;
     int *pival1 = &ival1;   //ival的指针
     int *& pi1 = pival1;   //ival的指针的引用

     int  ival2 = 2048;
     int *pival2 = &ival2;   //iva2的指针
     int *& pi2 = pival2;   //iva2的指针的引用

     cout<<"ival1: "<<ival1<<endl;
     cout<<"pival1:"<<pival1<<endl;
     cout<<"pi1:   "<<pi1<<endl;
     cout<<"ival2: "<<ival2<<endl;
     cout<<"pival2:"<<pival2<<endl;
     cout<<"pi2:   "<<pi2<<endl;

     cout<<"-------------------"<<endl;

     *pi1 = *pi2;    //解除指针引用

     cout<<"ival1: "<<ival1<<endl;
     cout<<"pival1:"<<pival1<<endl;
     cout<<"pi1:   "<<pi1<<endl;
     cout<<"ival2: "<<ival2<<endl;
     cout<<"pival2:"<<pival2<<endl;
     cout<<"pi2:   "<<pi2<<endl;

     /*out put
     ival1: 1024
     pival1:0xbfffe6a4
     pi1:   0xbfffe6a4
     ival2: 2048
     pival2:0xbfffe698
     pi2:   0xbfffe698
     -------------------
     ival1: 2048
     pival1:0xbfffe6a4
     pi1:   0xbfffe6a4
     ival2: 2048
     pival2:0xbfffe698
     pi2:   0xbfffe698

     */
     //输出说明*pi1 = *pi2;
     //之间的赋值并未改变指针引用的值,即地址的值
     //而是改变了引用对象的值
    }

    ///////////////////////////////////////////////////////////////////////////////////

    #include <iostream>

    using namespace std;

    int main(void)
    {
     int  ival1 = 1024 ;
     int *pival1 = &ival1;
     int *& pi1 = pival1;

 

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接