我现在只知道引用相当于对某对象创建了一个别名,操作时可以直接操作,但是并不太理解:
-
那么返回引用的函数呢,难道返回的是一个
int&
的对象吗,能做左值(惊了)?函数返回的不是量,这个把我搞晕了...写了一小段程序,能跑,但是不知道对不对int glob[10]; int &foo(int n) { return glob[n]; } int main() { foo(1)=1; foo(2)=2; cout<<foo(1)<<endl<<foo(2)<<endl; cout<<glob[1]<<endl<<glob[2]<<endl; }
- 在处理引用的过程中,编译器做了什么事情?既然引用不占用内存空间,以后如何记录引用的位置?
N4687
11.3.2 Reference
所以
指针不占空间
这个说法是unspecificed
的, 意思就是无论占不占都是合理的, 可能同一个程序这里占了, 那里不占也行.而具体编译器的实现自然也是有自己的优化啊. 引用下幻の上帝6年前在这里的说法: