相关疑难解决方法(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++中的变量和引用有什么区别?

我所知道的事实:

  1. C++中有三种类型的变量:变量,指针和引用.
  2. 变量是存储实际数据的存储器的标签.
  3. 指针存储变量的地址.
  4. 引用是变量的别名.

我的问题:

  1. 通过观察,变量名称和引用的使用是可交换的.真的吗?
  2. 传递变量名作为参数和传递引用有什么区别?例如,

    void func(int a); vs void func2(int&b);

太感谢了!

c++ variables reference

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

用c ++语言引用

我正在学习c ++,我认为到目前为止一切都很好.我阅读了有关参考资料并做了一些练习(简单).但是这段代码存在一个理解问题:

const int& GetMax (const int& valuel, const int& value2).

任何人都可以帮助我理解为什么它传递带有函数类型的引用以及它将做什么(也在它的参数类型中)?在这种情况下会引用什么?

c++

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

标签 统计

c++ ×3

reference ×2

c++-faq ×1

pointers ×1

variables ×1