C++ 中引用和指针的关系

时间:2025-11-08 21:30:51 C语言

C++ 中引用和指针的关系

  C语言传递参数均是以值传递,另外也可以传递指针。下面是小编分享的C++ 中引用和指针的关系,一起来看一下吧。

  1.引用在定义时必须初始化,指针没有要求

  int &rNum; /pic/p>

  int *pNum; /pic/p>

  2. 一旦一个引用被初始化为指向一个对象,就不能再指向

  其他对象,而指针可以在任何时候指向任何一个同类型对象

  int iNum = 10;

  int iNum2 = 20;

  int &rNum = iNum;

  &rNum = iNum2; /pic/p>

  3. 没有NULL引用,但有NULL指针。

  int *pNum = NULL; /pic/p>

  int &rNum = NULL;/pic/p>

  4. 在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数。

  char c1 = 1;

  char* pc = &c1;

  char& rc = c1;

  cout<<sizeof(pc)<<sizeof(rc)<<endl; /pic/p>

  5. 引用自加改变变量的内容,指针自加改变了指针指向

  rNum++; /pic/p>

  pNum++; /pic/p>

  6. 有多级指针,但是没有多级引用

  int &&rNum ; /pic/p>

  int **ppNum; /pic/p>

  7.引用比指针使用起来相对更安全

  指针和引用的底层实现

  int Num = 10;

  012213BE mov     dword ptr [Num],0Ah

  int &rNum = Num;

  012213C5 lea     eax,[Num]

  012213C8 mov     dword ptr [rNum],eax

  int *pNum =&Num;

  012213CB lea     eax,[Num]

  012213CE mov     dword ptr [pNum],eax

  底层的实现方式相同,都是按照指针的方式来实现的


【C++ 中引用和指针的关系】相关文章:

C++ 中指针和引用区别有哪些01-09

C++ this指针详解08-28

C++返回对象和返回引用03-14

关于C和C++函数的相互引用02-25

c++ const引用与非const引用02-07

C和C++的关系解说01-17

c++函数指针使用示例02-09

C++函数指针学习教程11-09

Java中对象和引用的具体区别09-12