首页 > 解决方案 > 引用总是创建一个隐式指针吗?

问题描述

如果我在这样的函数范围内创建对变量的引用:

{
    int x = 5;
    int & ref = x;
}

它总是会创建一个隐式指针吗?如果引用是函数参数,则需要创建指针,但在这种情况下,它与直接使用 x 相同。

标签: c++pointersreferencecompiler-optimization

解决方案


不必要。你的编译器如何实现引用取决于它,只要它遵循 C++ 标准。

请记住,编译器将采用as-if规则。您对预期的行为进行编程。编译器生成代码。一个好的编译器会完全错过你的代码片段,因为它没有明显的效果。

请参阅“as-if”规则到底是什么?


推荐阅读