c++什么使用引用什么时候使用指针?区别是什么

什么使用引用什么时候使用指针?区别是什么,c++中既然引用实现了指针的功能,而且使用起来也更加方便,为什么还要使用指针呢?这是因为指针可以为空,而引用不能为空,指针可以被赋值而引用只可以被初始化,不可以被赋值为另一个对象的别名。如果你想使一个变量记录不同的对象的地址,那么就必须使用指针。另外,在堆中创建一块内存区域,必须要用指针来只想他,不然该区域就会变成无法访问的内存空间,当然我们也可以使用引用来指向内存空间的指针。

在机器运行不正常也就是内存不够的时候,无法创建空间情况下,呢么new int就会自动返回一个空指针。我们知道空指针是不能为空的,因此这种情况之下使用语句int *&r=new int;就会导致一个无用的别名。而是哟个星号*读取一个无用的背面则会引起系统崩溃。解决的办法就是将引用初始化为新建内存区域的别名,而要将r初始化为指向该区域的指针的别名。前提是首先要判断该指针不为空。假如不为空,就r初始化为指针p的别名,或者指针p指向的数据别名。

指针与引用的区别:

指针可以为空,引用不能为空;

指针可以被赋值,引用不能被赋值;

指针可以指向堆中的空间,引用不能指向堆中的空间。

#include <iostream>
using namespace std;
int main()
{
int a=6;
int *p=&a;
int b=8;
p=&b;//指针在指向a后还可以指向b但是引用却不行
}

 

  本文链接地址: c++什么使用引用什么时候使用指针?区别是什么