C++中引用与指针的区别

请说出C++中引用和指针的区别。(华为、腾讯、阿里等)函数

 

参考答案:指针

 

(1)当引用被建立时,它必须被初始化。而指针则能够在任什么时候候被初始化。对象

 

(2)一旦一个引用被初始化为指向一个对象,它就不能被改变为对另外一个对象的引用。而指针则能够在任什么时候候指向另外一个对象。内存

 

(3)不可能有NULL引用。必须确保引用是和一块合法的存储单元关联。变量

 

进一步解析:腾讯

 

指针和引用都是 C++ 中的基本语法成份,它们既有联系,也有不一样之处。语法

 

它们都是地址的概念,其中指针指向一块内存,它的内容是所指内存的地址;而引用是某块内存的别名,具体来讲,指针是一个变量的地址,引用是一个变量的别名。引用

 

但它们的不一样之处也很明显,体如今如下方面:程序

 

  • 指针是一个实体,而引用仅是个别名;co

     

  • 引用必须被初始化,指针没必要;

     

  • 引用只能在定义时被初始化一次,以后不可变;指针能够改变所指的对象;

     

  • 能够有const指针,可是没有const引用;

     

  • 不存在指向空值的引用,可是存在指向空值的指针,即引用不能为空,指针能够为空;

     

  • “sizeof 引用”获得的是所指向的变量(对象)的大小,而“sizeof 指针”获得的是指针自己(所指向的变量或对象的地址)的大小;

     

  • 指针和引用的自增(++)运算意义不同;

     

  • 程序为指针变量分配内存区域,而引用不须要分配内存区域;

     

  • 指针能够有多级,可是引用只能是一级,例如int **p是合法的,而 int &&a是不合法的;

     

  • 指针和引用做为函数参数进行传递时也不一样。用指针传递参数,能够实现对实参进行改变的目的;在将引用做为函数参数进行传递时,实质上传递的是实参自己,而不是实参的一个拷贝,所以对形参的修改实际上是对实参的修改。
相关文章
相关标签/搜索