我认识的指针和引用的比较

指针和引用的比较

1.引用必须有初始值

string &rs;//error

string *ps;//ok

string s("xyz");

string &s1=s;

  }//ok


2.reference比pointer更有效率

    原因就是:pointer需要检查是否为NULL

void print_int(const int & ri){

cout<<ri<<endl;

}

void print_int(const int *pi){

if(pi)

 cout<< *pi << endl;

}


3.pointer可以被重新赋值,指向另一个对象,reference总是指向最初指向的那个对象

string  s1("nancy");string s2("cancy");

     string &rs=s1;

     string *ps=s1;

     rs=s2;//此时rs仍然指向s1只是里面的内容被s2替换了,即s1=“cancy”

      ps=&s2;//ps此时改变了指向,指向了s2



另外在使用指针和引用的时候,当我们确定某一个对象会实时存在时,建议用引用。











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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值