首页 > 其他 > 详细

11.* & 指针 引用

时间:2019-03-06 16:03:08      阅读:127      评论:0      收藏:0      [点我收藏+]

首先:

技术分享图片

所以:

* &在不同地方有不同的含义,不能一味地认为*是取所指对象,&也不是仅用于取地址,他们都是修饰符。

#include<iostream>
using namespace std;
int main()
{
    int i = 42;
    int *p;
    int *&r = p;
    cout << &r << endl;
    if (&r == &p)
        cout << "ok" << endl;
    r = &i;
    *r = 0;
    system("pause");
    return 0;
}

结果:

技术分享图片

 

所以:

*&r = p 相当于 *(&r) = p

从右往左看,r先跟&合并,表示“别名”,&r相当于一个变量,比如说就是rp,

p的另一个名字叫&r,p的地址和r的地址是一样的

那*(&r)不就是一个指针吗,这个指针指向了p,p也是一个指针,他们能互相赋值的原因就是他们都是int类型的指针

11.* & 指针 引用

原文:https://www.cnblogs.com/foremember/p/10483401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!