引用与指针的区别:
1.引用同指针的底层一致,引用的底层就是指针
2.引用必须初始化,且不能被NULL初始化,初始化后绑定此对象不能再被改变绑定到别的对象。指针可以不初始化,可以被NULL初始化,且可以改变指向其他的对象
3.引用和指针对于sizeof,自增自减等运算符的不同
4.引用比指针更加安全,引用不能为NULL,引用必须初始化等特点
5.引用的底层是指针,但是比指针更加好用,对引用做改变就是对原变量改变,而指针还需要解引用才能操纵原变量
#include <iostream>//对于引用是否有内存空间的验证
using namespace std;
int main()
{
int a = 10;
int &b = a;
int *c = &a;
cout<<b;
return 0;
}//所形成的关键的汇编代码 int a = 10;
0114436E mov dword ptr [a],0Ah
int &b = a;
01144375 lea eax,[a]
01144378 mov dword ptr [b],eax
int *c = &a;
0114437B lea eax,[a]
0114437E mov dword ptr [c],eax
cout<<b; //可以看到指针和引用的底层是一致的运行过程中通过内存查看来查看指针是否占用了地址,看以看到有两个 80 fd 3a 00,其是指针和引用的内容物,指向的是100x003AFD64 cc cc cc cc ????
0x003AFD68 80 fd 3a 00 €?:.
0x003AFD6C cc cc cc cc ????
0x003AFD70 cc cc cc cc ????
0x003AFD74 80 fd 3a 00 €?:.
0x003AFD78 cc cc cc cc ????
0x003AFD7C cc cc cc cc ????
0x003AFD80 0a 00 00 00 ....
本文详细对比了C++中引用与指针的主要区别,包括初始化要求、安全性、内存占用等方面,并通过实例代码展示了它们在实际应用中的表现。
1572

被折叠的 条评论
为什么被折叠?



