指针的引用

        在C中,有指针和指针引用,它们的区别在是什么?

        首先,指针是一个起路牌作用的地址,它本身要占用内存(有自己的内存地址),在这个地址中保存的是另外一个同类变量的内存地址,因此,可以通过对指针的间接操作来改变另外一个变量的值.

         引用是依附于另外一个变量的"寄生虫",它本身没有内存地址,也可以通过改变应用变量的操作来修改被引用变量的值.例如:

 int k=10,*p=&k;
 int &m=k;
 cout<<"&k="<<&k<<endl;
 cout<<"p="<<p<<endl;
 cout<<"&m"<<&m<<endl;
 cout<<"&p="<<&p<<endl;

        则,打印的结果为:

       &k=0x0012FF6C
       p=0x0012FF6C
       &m=0x0012FF6C
       &p=0x0012FF68

      而指针引用,则是改变指针变量的值(即所保存内存地址的值).比如方法:

     void Point(Node *obj)
    {
        obj->SetScore(10.0f);
    }

    void PointRef(Node *&obj)
    {
        obj=new Node(100,100);
    }

    前一个是通过间接操作来改变远对象的值,而后一方法是重新为该指针分配内存地址,所以必须为指针的引用.

  在C#中,指针为对象,指针的引用为参数前面加 ref 关键字.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值