指针与引用的区别(整理)

指针问题,包括常量指针、数组指针、函数指针、this指针、指针传值、指向指针的指针等,这些问题也是各大公司常备考点
1、指针与引用的区别?
1) reference一定得代表某个对象,c++规定reference必须有初值。但是指针就没有这些限制
使用reference之前不需要测试其有效性。
void printDouble(const double& rd)
{
 cout<<rd;//不需要测试rd,它代表某个double.
}
如果使用pointer,就得测试它是否为null.
void printDouble(const double *pd)
{
   if(pd)//检测是否为null pointer.
   {
      cout<<*pd;
    }
 }
2)指针与引用的另一个重要的区别是指针可以被重新赋值以指向另一个不同对象。但是引用则总是指向在

初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。
string s1("abc");
string s2("123");
string& rs= s1;//rs代表s1.
string* ps=&s1; //ps指向s1.
rs=s2;    //rs仍代表s1,但是s1的值现在变成了"123".
ps=&s2; //ps现指向s2,但s1没有变化。

参考:http://www.cnblogs.com/cgli/archive/2011/04/30/2033225.html
http://www.cnblogs.com/iuices/archive/2011/11/03/2234877.html

百度的结果
相同点:
  都是地址的概念;
  指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。
不同点:
  指针是一个实体,而引用仅是个别名;
  引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁

”;
  引用没有const,指针有const,const的指针不可变;
  引用不能为空,指针可以为空;
  “sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身的大小;
  指针和引用的自增(++)运算意义不一样;
  引用是类型安全的,而指针不是(引用比指针多了类型检查

定义了一个指针变量,编译器为他分配了的内存(32位系统下默认4字节)。而一个引用是不占任何内存的

,这是最本质的区别。

原文链接: https://www.cnblogs.com/frankx/archive/2012/01/01/2309404.html

欢迎关注

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

    指针与引用的区别(整理)

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

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

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

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

(0)
上一篇 2023年2月8日 下午4:15
下一篇 2023年2月8日 下午4:16

相关推荐