美文网首页
引用和指针的区别

引用和指针的区别

作者: NullUser | 来源:发表于2021-02-05 16:24 被阅读0次

    引用可以看做是被引用对象的一个别名,在声明引用时,必须同时对其进行初始化。而且不允许再修改成引用其它变量。

    指针用于指向变量的地址,可以指向空地址(NULL),且可以再重新指向其它变量的地址。

    假设我们把变量都看作是由两部分组成,一个是它的地址,一个是它的值。
    我们写个demo看一下原变量的地址和值是多少,再看看引用变量和指针变量的地址和值分别是多少。

    int num = 10;
    int &a = num;
    int *p = #
    std::cout<<"num:"<<std::endl
                <<"\t"<<"address:"<<&num<<",value:"<<num<<std::endl;
    std::cout<<"a:"<<std::endl
                <<"\t"<<"address:"<<&a<<",value:"<<a<<std::endl;
    std::cout<<"p:"<<std::endl
                <<"\t"<<"address"<<&p<<",value:"<<p<<std::endl;
    
    

    编译,运行,输出结果如下

    nulluser:~$ g++ main.cpp -o exe
    nulluser:~$ ./exe
    num:
        address:0x7ffd357f6454,value:10
    a:
        address:0x7ffd357f6454,value:10
    p:
        address:0x7ffd357f6458,value:0x7ffd357f6454
    

    由输出可见,num变量的地址是:0x7ffd357f6454,值是:10。
    引用a和num变量的地址和值都相同,这就更能理解引用是被引用对象的一个别名,它的组成和原变量是相同的。
    而指针变量p是其值等于原变量的地址,也就是p指向了num的地址,指针用于指向变量的地址。

    相关文章

      网友评论

          本文标题:引用和指针的区别

          本文链接:https://www.haomeiwen.com/subject/sqqgtltx.html