相关疑难解决方法(0)

C++中指针变量和引用变量之间有什么区别?

我知道引用是语法糖,因此代码更容易读写.

但有什么区别?


以下答案和链接摘要:

  1. 指针可以重新分配任意次数,而在绑定后无法重新分配引用.
  2. 指针可以指向nowhere(NULL),而引用总是指对象.
  3. 您不能使用指针来获取引用的地址.
  4. 没有"参考算术"(但您可以获取引用所指向的对象的地址,并对其进行指针运算&obj + 5).

澄清一个误解:

C++标准非常谨慎,以避免规定编译器如何实现引用,但每个C++编译器都将引用实现为指针.也就是说,声明如下:

int &ri = i;
Run Code Online (Sandbox Code Playgroud)

如果它没有完全优化,则分配与指针相同的存储量,并将地址i放入该存储中.

因此,指针和引用都使用相同数量的内存.

作为基本规则,

  • 使用函数参数和返回类型中的引用来提供有用的自我文档化接口.
  • 使用指针实现算法和数据结构.

有趣的读物:

c++ pointers reference c++-faq

3115
推荐指数
34
解决办法
94万
查看次数

在类型后放一个“&”

我对编程相当陌生。我刚刚在大学课程中从 C 转到 C++,并且遇到了我以前在 C 中从未见过的东西。有时在类型之后,无论是在函数声明中还是在传递参数中,都会&紧跟在类型之后。例如,我们在我们的一个项目中使用了一个名为 Customer 的结构体,其中一些函数通过Customer&。为什么在类型之后是&符号,而不是在前面?谢谢!

c++ parameters types declaration ampersand

0
推荐指数
1
解决办法
3782
查看次数

例外 - '&'符号的含义

我现在正在使用C++中的异常,我注意到之前使用过的一个字符,但不是这样的.它是&符号,由cplusplus.com用作: catch (exception& e)

虽然我之前使用了像这样pointer = &var的指针: 它给指针var变量的位置.

&字符的两种用法有什么不同,如果它们完全不同的话?

c++

-5
推荐指数
1
解决办法
120
查看次数

标签 统计

c++ ×3

ampersand ×1

c++-faq ×1

declaration ×1

parameters ×1

pointers ×1

reference ×1

types ×1