指针和引用的区别

来源:互联网 发布:js date对象 编辑:程序博客网 时间:2024/05/17 10:43

指针:指针指向一块儿内存,它的内容是指向内存的地址。


引用:某一块儿内存的别名。


区别:

A.引用必须初始化。指针不必须被初始化(dangergous)。

int i;

int &ref1 = i;//ok

int &ref2;//error

B.不能有NULL引用,引用必须与合法的内存单元相关联。指针可以为空。

int *p = NULL;

int &ref = p;//dangerous

C.只能引用一次,不可以重复引用。指针可以多次指向。

int a = 0;

int b = 1;

int &ref = a;//right

&ref = b;//error

D.指针使用时需要解引用,引用不需要。

E.sizeof()引用是引用对象的大小,sizeof()指针是指针本身的大小。

F.合法性。指针在使用时总应该被检查,防止其空。而引用则不必。

原创粉丝点击