鉴于:
int i = 42;
int j = 43;
int k = 44;
Run Code Online (Sandbox Code Playgroud)
通过查看变量地址,我们知道每个地址占用4个字节(在大多数平台上).
但考虑到:
int i = 42;
int& j = i;
int k = 44;
Run Code Online (Sandbox Code Playgroud)
我们将看到,变量i确实需要4个字节,但j需要没有和k再次发生堆栈上的4个字节.
这里发生了什么?看起来j在运行时根本就不存在.那么我作为函数参数收到的引用呢?这必须在堆栈上占用一些空间......
虽然我们在这里 - 为什么我不能定义数组或引用?
int&[] arr = new int&[SIZE]; // compiler error! array of references is illegal
Run Code Online (Sandbox Code Playgroud)