网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C/C++ > 正文
引用与指针的区别
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
个引用指向空值的可能性。

  因为引用肯定会指向一个对象,在C里,引用应被初始化。

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

  指针没有这样的限制。
  string *ps; // 未初始化的指针
            // 合法但危险

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

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

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

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

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

  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 没有改变

  总的来说,在以下情况下你应该使用指针,一是你考虑到存在不指向任何对象的可能(在这种情况下,你能够设置指针为空),
 二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。
  还有一种情况,就是当你重载某个操作符时,你应该使用引用。最普通的例子是操作符。这个操作符典型的用法是返回一个目标对象,其能被赋值。

  vector<int> v(10); //建立整形向量(vector),大小为10
                    //向量是一个在标准C库中的一个模板
  v = 10; // 这个被赋值的目标对象就是操作符返回的值

  如果操作符返回一个指针,那么后一个语句就得这样写:

  *v = 10;

  但是这样会使得v看上去象是一个向量指针。因此你会选择让操作符返回一个引用
  当你知道你必须指向一个对象并且不想改变其指向时,或者在重载操作符并为防止不必要的语义误解时,你不应该使用指针。
 而在除此之外的其他情况下,则应使用指针 。 
 

  • 上一篇资讯: 用c读取XML文件
  • 下一篇资讯: 全局变量和局部变量
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号