jaz*_*azz 1 c++ return function memory-address
以下是什么意思?
class Something
{
public:
int m_nValue;
const int& GetValue() const { return m_nValue; }
int& GetValue() { return m_nValue; }
};
Run Code Online (Sandbox Code Playgroud)
此代码取自此处.
int& GetValue()
^ Means returns a reference of int
Run Code Online (Sandbox Code Playgroud)
喜欢
int i = 10;
int& GetValue() {
int &j = i;
return j;
}
Run Code Online (Sandbox Code Playgroud)
j是i全局变量的参考.
注意:在C++中,您有三种变量:
int i = 10.int &j = i;
引用变量)创建其他变量的别名,两者都是相同内存位置的符号名称.int* ptr = &i.叫做指针.指针变量用于保存变量的地址.尊重声明
Pointer:
int *ptr = &i;
^ ^ & is on the left side as an address operation
|
* For pointer variable.
Reference:
int &j = i;
^
| & on the right side for reference
Run Code Online (Sandbox Code Playgroud)
记住在C中你只有两种变量值和地址(指针).引用变量在C++中,引用很容易使用,如值变量和指针变量.
指针就像:
j = &i;
i j
+------+ +------+
| 10 | | 200 |
+------+ +------+
202 432
Run Code Online (Sandbox Code Playgroud)
参考如下:
int &j = i;
i, j
+------+
| 10 |
+------+
Run Code Online (Sandbox Code Playgroud)
没有为j分配内存.它是内存中相同位置的别名.
因为您评论时,您对指针和引用变量之间的差异有疑问,所以我强烈建议您从我在答案中给出的链接中阅读相关页面.