引用和指针的区别

*****************************

资料总结自网络,用于自我学习。

****************************

C语言没有引用啊,C++才有. 引用能起到指针的部分作用,但是比指针安全. 一个引用可以看作是某个变量的一个"别名"。对引用进行操作就像对原变量进行操作一样。 主要用于函数的参数传递时使用。因为C语言没有类似VB的“传引用调用”这个功能,所以C++的引用填补了这个空白。从此即使需要改动参数,也直接传递一个变量过去即可。这在操作符重载中有更重要的意义。

int a; //声明变量a

int& ra = a; //声明一个引用,名字是ra,ra引用了a 注意,ra声明的时候必须同时给出它到底引用了谁

int& ra; //只声明不指明是不对的。 还有,引用一旦声明,就不能再修改到其他变量上了,这与指针不同。

ra = b; //这是不行的,因为已经int &ra = a了

 

C++中引用和指针的区别:
1 、要认识到在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象,因为引用肯定会指向一个对象,在C++里,引用应被初始化。指针没有这样的限制,不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高。因为在使用引用之前不需要测试它的合法性。
例如:
void printDouble(const double& rd)  
{  
cout << rd; // 不需要测试rd,它肯定指向一个double值
}  
相反,指针则应该总是被测试,防止其为空:
void printDouble(const double *pd)
{  
if (pd)  
{ // 检查是否为NULL  
cout << *pd;  
}  
}  
2 、指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象
引用则总是指向在初始化时被指定的对象,以后不能改变。
  string s1="John";
  string s2="Billy";
  string &rs=s1;//rs引用s1
  string *ps=s1;//ps指向s1
  rs=s2;//rs仍引用s1,但此时s1的值为"Billy"
  ps=s2;//ps指向s2,但s1此时的值没有发生改变
3、 引用只是个变量的别名 不占用存储空间
  指针是个变量 占用存储空间

原文链接: https://www.cnblogs.com/laneo/archive/2012/04/10/2441119.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    引用和指针的区别

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/46941

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午11:02
下一篇 2023年2月8日 下午11:03

相关推荐