从c++操作符也有&取地址。
应该说引用是左值,在定义是使用 例如 int &ix1 = ix;
取地址是右值,常在给指针赋值时使用。 例如: string *sp = &s;
另外,& 还可以用作逻辑运算符,是按位与。例如: expr & expr;
请按语境区分每种用法。
应该说引用是左值,在定义是使用 例如 int &ix1 = ix;
取地址是右值,常在给指针赋值时使用。 例如: string *sp = &s;
另外,& 还可以用作逻辑运算符,是按位与。例如: expr & expr;
请按语境区分每种用法。
它们只是共用了一个符号&(就像<<在C里是左移运算符,而ostream将这个符号重载来让cout进行输出),但有不同的含义和用法。
C的地址符号&就是表示对一个变量(或者说一块存储区域)取地址,而C++中引用&更可以看作是一种类型的一部分,就像char *p中的*一样,由*和char构成了指向char的指针,所以只在声明定义一个引用的时候用到,而且必须赋初值,例如:
int a;
int &b = a;
这就表示b是a的一个引用,你可以理解为b是a的一个别名,它们表示了同一个存储空间,以后对b的访问(读或写操作)实际上就是对a进行操作。