C++ 中引用和指针的关系实例详解
C++中引用和指针的关系实例详解
1.引用在定义时必须初始化,指针没有要求
int&rNum;//未初始化不能通过编译 int*pNum;//可以
2.一旦一个引用被初始化为指向一个对象,就不能再指向
其他对象,而指针可以在任何时候指向任何一个同类型对象
intiNum=10; intiNum2=20; int&rNum=iNum; &rNum=iNum2;//不能通过
3.没有NULL引用,但有NULL指针。
int*pNum=NULL;//可以 int&rNum=NULL;//不可以
4.在sizeof中含义不同:引用结果为引用类型的大小,
但指针始终是地址空间所占字节个数。
charc1=1; char*pc=&c1; char&rc=c1; cout<5.引用自加改变变量的内容,指针自加改变了指针指向
rNum++;//指针的内容改变 pNum++;//指针改变6.有多级指针,但是没有多级引用
int&&rNum;//不可以 int**ppNum;//可以7.引用比指针使用起来相对更安全
指针和引用的底层实现
intNum=10; 012213BEmovdwordptr[Num],0Ah int&rNum=Num; 012213C5leaeax,[Num] 012213C8movdwordptr[rNum],eax int*pNum=&Num; 012213CBleaeax,[Num] 012213CEmovdwordptr[pNum],eax底层的实现方式相同,都是按照指针的方式来实现的
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!