我知道引用是语法糖,因此代码更容易读写.
但有什么区别?
以下答案和链接摘要:
NULL
),而引用总是指对象.&obj + 5
).澄清一个误解:
C++标准非常谨慎,以避免规定编译器如何实现引用,但每个C++编译器都将引用实现为指针.也就是说,声明如下:
Run Code Online (Sandbox Code Playgroud)int &ri = i;
如果它没有完全优化,则分配与指针相同的存储量,并将地址
i
放入该存储中.
因此,指针和引用都使用相同数量的内存.
作为基本规则,
有趣的读物:
在C++中,指针是指向存储另一个变量的内存地址的指针,而在C#中,引用是一些相同的指针.这两者有什么区别?