首页 > 编程语言 >C++八股文——引用与指针的区别

C++八股文——引用与指针的区别

时间:2022-10-28 10:15:41浏览次数:48  
标签:符号表 变量 C++ 改变 地址 引用 八股文 指针

本质
引用是别名,指针是地址

具体分析
从现象上:指针运行的时候可以改变其所指向的值,而引用一旦和某个对象绑定之后就不再改变。指针可以重新被赋值以指向另外一个不同的对象。
但是引用则是总是指向在初始化时被指定的对象,以后不能改变,但是其指定对象的内容可以改变。

从内存分配上:程序未指针变量分配内存区域,而不为引用分配内存区域

从编译上:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应的地址;
指针变量在符号表中对应的地址值为指针变量的地址值,而引用在符号表中对应的地址值是引用对象的地址值;
符号表生成之后,就不会再改变,因为指针变量中的值可以改变,所以指针可以改变指向的对象,而引用对象不能改。这是使用指针不安全而使用
引用安全的主要原因。从某种意义上说引用是不可改变的指针

注解:
不存在指向空值的引用,这意味着引用的代码效率比使用指针高。因为在使用引用之前不需要检测它的合法性,而指针需要进行测试,防止其为空;
理论上指针的级数没有限制,但是引用只能是一级;
指针和变量一样,也是有地址的,只不过变量的值被解释成一个值,而指针的值被解释成一个地址

标签:符号表,变量,C++,改变,地址,引用,八股文,指针
From: https://www.cnblogs.com/dh2021/p/16834857.html

相关文章