The*_*ere 13 c++ types reference
int x = 10;
int& y = x;
Run Code Online (Sandbox Code Playgroud)
为此,x在堆栈上分配为2/4/8字节,并将00 ... 1010写入这些字节.内存布局及其内容会是什么样的y?
Ser*_*kov 14
让我引用http://en.cppreference.com/w/cpp/language/reference:
引用不是对象; 它们不一定占用存储空间,尽管如果有必要实现所需的语义,编译器可以分配存储空间(例如,引用类型的非静态数据成员通常会增加类的大小以存储存储器地址所需的数量)
从C ++的角度来看,它没有定义。
实际上,即使C ++具有许多不同的属性,编译器通常也以与指针完全相同的方式对待引用。这意味着所引用变量的地址是物理存储的。编译器可以做出的唯一假设可能是引用不为null。尽管如此,我认为如果不先获取指针,就无法访问C ++代码中引用变量中存储的地址。
请注意,编译器通常可以优化参考变量,因此您甚至无法说出它在程序集中的位置。它可以对指针变量执行相同的操作。
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |