全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

简单谈谈C++中指针与引用的区别

指针与引用是C++中两个很重要的概念,它们功能看过去很相似,就是都是间接引用某个对象,那么我们应该在什么时候使用指针,什么时候使用引用呢,下面请允许我慢慢道来:

1.永远不要使用一个指向空值的引用。一个引用必须始终指向某个对象,所以当你确定使用一个变量指向某个对象时,但是这个对象在某些时间可能指向控制,这时候你就必须把变量声明为指针类型,而不是引用!当你确定这个变量始终指向某个对象是,这时候你就可以把变量声明为引用类型。

char *str=0; //设置指针为空值
char &s=*str; //让引用指向空值

你应该避免出现上面的错误!

2.因为引用肯定要指向一个对象,所以,在C语言里引用必须被初始化。

string& rs;   // 错误引用必须被初始化
string s("xyzzy");
string& rs = s; // 正确 rs指向s

指针没有这样的限制:

string *ps; // 未 初 始 化 的 指 针
      // 合 法 但 危 险

3.不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高,因为在使用引用之前不需要测试它的合法性。

void printDouble(const double& rd)
{
   cout << rd;  // 不需要测试rd,它
}          // 肯定指向一个double值

相反指针则应该总是被测试防止其为空:

void printDouble(const double *pd)
  {
    if (pd) {  // 检查是否为NULL
      cout << *pd;
    }
  }

4.指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象以后不能改变。

string s1("Nancy");
  string s2("Clancy");
  string& rs = s1; // rs 引用s1
  string *ps = &s1; // ps 指向s1
  rs = s2; // rs 仍旧引用s1,
      // 但是s1的值现在是
      // "Clancy"
  ps = &s2; // ps 现在指向s2;
       // s1 没有改变

5.重载某个操作符时你应该使用引用。最普通的例子是重载操作符[]。这个操作符典型的用法是返回一个目标对象其能被赋值。

总的来说在以下情况下你应该使用指针:

一是你考虑到存在不指向任何对象的可能,在这种情况下你能够设置指针为空;

二是你需要能够在不同的时刻指向不同的对象,在这种情况下你能改变指针的指向。

如果总是指向一个对象,并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。


# c++引用和指针的区别  # c++  # 引用和指针的区别  # c++引用与指针的区别  # C++中引用传递与指针传递的区别(面试常见)  # C++11右值引用和转发型引用教程详解  # C++中的循环引用  # Go语言到底有没有引用传参(对比 C++ )  # 从C语言过渡到C++之引用(别名)  # C/C++ 数组和指针及引用的区别  # C++ 中引用与指针的区别实例详解  # C++浅拷贝与深拷贝及引用计数分析  # 详谈C++引用&和指针在作为形参时的区别  # C++关于引用作为函数的用法  # 你应该  # 为空  # 不需要  # 什么时候  # 当你  # 在这种情况下  # 都是  # 这时候  # 你就  # 一是  # 你能  # 很重要  # 不存在  # 考虑到  # 我们应该  # 你就可以  # 肯定要  # 道来  # 则应  # 很相似 


相关文章: 定制建站哪家更专业可靠?推荐榜单揭晓  ,石家庄四十八中学官网?  如何访问已购建站主机并解决登录问题?  如何在万网主机上快速搭建网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  宿州网站制作公司兴策,安徽省低保查询网站?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  建站DNS解析失败?如何正确配置域名服务器?  如何选择适配移动端的WAP自助建站平台?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何快速搭建自助建站会员专属系统?  婚礼视频制作网站,学习*后期制作的网站有哪些?  c++ stringstream用法详解_c++字符串与数字转换利器  建站之星如何通过成品分离优化网站效率?  三星网站视频制作教程下载,三星w23网页如何全屏?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  香港服务器租用费用高吗?如何避免常见误区?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  模具网站制作流程,如何找模具客户?  孙琪峥织梦建站教程如何优化数据库安全?  建站之星如何防范黑客攻击与数据泄露?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何快速生成高效建站系统源代码?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何选择美橙互联多站合一建站方案?  如何通过万网虚拟主机快速搭建网站?  如何在香港免费服务器上快速搭建网站?  Android自定义控件实现温度旋转按钮效果  建站之星安装需要哪些步骤及注意事项?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  自助网站制作软件,个人如何自助建网站?  如何实现建站之星域名转发设置?  如何选择高性价比服务器搭建个人网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  如何破解联通资金短缺导致的基站建设难题?  已有域名和空间,如何快速搭建网站?  建站主机如何选?高性价比方案全解析  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  建站主机与虚拟主机有何区别?如何选择最优方案?  如何通过二级域名建站提升品牌影响力?  如何选择靠谱的建站公司加盟品牌?  如何制作算命网站,怎么注册算命网站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  建站主机数据库如何配置才能提升网站性能? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。