我的问题确实很简单,我相信可以理解。 我制作了这个简单的代码片段,以说明在通过引用传递值时发生的冲突。
int main() {
int a = 1;
int &b = a;
}
我知道这是正确的方法,但是采用b的地址并使其等于a的值的意义如何?从逻辑上讲,它应该是:int &b = &a;
答案 0 :(得分:6)
许多运算符都是上下文相关的。根据上下文,&
“运算符”可能意味着三件事:
可以在定义引用时使用
int& r = a; // The variable r is a reference of the variable a
它可以用来获取指向某物的指针
int* p = &a; // Here & is the address-of operator which returns a pointer
// Here it makes p point to the variable a
它可能是bitwise AND运算符
0x53 & 0x0f // Here's a bitwise AND operation, the result is 0x03
答案 1 :(得分:4)
您误会了语法。这是不愉快的,但是&
既是运算符的地址,又是的令牌,表示“引用”。
int &b = a;
这声明变量b
的类型为int&
(引用int)并初始化为a
。没有任何地址。