c++中指针和引用的区别?

1.指针是一个实体,需要分配内存空间,引用是一个变量的别名,不需要分配内存空间。

2.引用在定义的时候必须进行初始化,并且不能改变。引用的值不能为NULL,指针在定义的时候不一定要初始化,并且指针所指向的空间是可变的,可以指向NULL。

3.sizeof指针得到的是指针本事的大小,sizeof引用得到的是引用所指向变量(对象)的大小。

4.指针可以为多级 例如二级指针,但是引用只能有一级。

5.作为参数时,指针传递本质是值传递,传递的值是指针的地址;引用的传递本质是地址传递,传递的是变量的地址。

6.指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用变量值加1).

7. 指针访问一个变量是间接访问,引用访问一个变量是直接访问(使用指针访问变量时,需要先声明一个指针变量,然后使用取址运算符"&“将变量的地址存储在指针变量中,最后通过解引用运算符”*"来获取变量的值。而引用则是直接使用变量的名称来访问和修改其值,无需借助指针。)

8.如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄漏。(如果将动态分配的对象通过引用返回,则无法直接通过引用来处理该对象的生命周期。引用本身并不拥有内存,它只是一个别名,通过引用返回动态内存分配的对象,会导致无法释放该内存,从而产生内存泄漏)

posted @ 2023-09-21 12:45  叶之心  阅读(68)  评论(0编辑  收藏  举报