请说出C++中引用和指针的区别。(华为、腾讯、阿里等)函数
参考答案:指针
(1)当引用被建立时,它必须被初始化。而指针则能够在任什么时候候被初始化。对象
(2)一旦一个引用被初始化为指向一个对象,它就不能被改变为对另外一个对象的引用。而指针则能够在任什么时候候指向另外一个对象。内存
(3)不可能有NULL引用。必须确保引用是和一块合法的存储单元关联。变量
进一步解析:腾讯
指针和引用都是 C++ 中的基本语法成份,它们既有联系,也有不一样之处。语法
它们都是地址的概念,其中指针指向一块内存,它的内容是所指内存的地址;而引用是某块内存的别名,具体来讲,指针是一个变量的地址,引用是一个变量的别名。引用
但它们的不一样之处也很明显,体如今如下方面:程序
指针是一个实体,而引用仅是个别名;co
引用必须被初始化,指针没必要;
引用只能在定义时被初始化一次,以后不可变;指针能够改变所指的对象;
能够有const指针,可是没有const引用;
不存在指向空值的引用,可是存在指向空值的指针,即引用不能为空,指针能够为空;
“sizeof 引用”获得的是所指向的变量(对象)的大小,而“sizeof 指针”获得的是指针自己(所指向的变量或对象的地址)的大小;
指针和引用的自增(++)运算意义不同;
程序为指针变量分配内存区域,而引用不须要分配内存区域;
指针能够有多级,可是引用只能是一级,例如int **p是合法的,而 int &&a是不合法的;