c++ - 当我声明一个引用变量时堆栈会发生什么? C++

标签 c++ reference stack pointer-aliasing

当我声明一个变量时,它会被分配到堆栈中的某个内存索引处,对吗?

但是当我声明一个引用变量时,它会指向另一个引用变量的相同索引,所以不需要在堆栈中分配新的空间......

C++ 是如何处理这种情况的?

我的意思是实际上,它有一个包含名称和索引之间关联的表?

编译器做所有的工作?

我希望清楚...如果有人有一些手册或相关资料,我将非常高兴!

谢谢大家,如果我写的英文不好,请见谅!

最佳答案

C++ 标准没有指定 ABI,因此这是实现定义的。但通常的方法是将引用实现为指针,因此在堆栈上分配指针。但是,如果此引用未在任何地方传递,它可能会被优化掉并简单地替换为它指向的变量。

关于c++ - 当我声明一个引用变量时堆栈会发生什么? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28486257/

相关文章:

data-structures - 堆栈和队列 : Which is simpler to implement using arrays?

c++ - 转置矩阵的内存黑客破坏堆栈,C++

c++ - C++ 中的指针和引用

c++ - 虚幻引擎 4.16,C++ 包含头文件

c++ - 将 Ref 对象作为类成员

java - 在 java 中,我们可以将父类(super class)对象传递给子类引用吗?

c++ - 从 SDL 库的函数返回的指针

c++ - 使用什么代替 Goto 语句?

c++ - 在 C++ 中使用 boost 拆分字符串两次?

c++ - const 引用字段作为 C++ 类中的只读属性