&符号在C ++中用作运算符。它在2个不同的地方使用,一个用作按位运算符,另一个用作运算符的指针地址。
按位与运算符(&)将第一个操作数的每个位与第二个操作数的该位进行比较。如果两个位都为1,则该位设置为1。否则,该位为0。按位AND运算符的两个操作数都必须为整数类型。
#include <iostream>  
using namespace std;
 
int main() {  
   unsigned short a = 0x5555;      // pattern 0101 ...  
   unsigned short b = 0xAAAA;      // pattern 1010 ...  
   cout << hex << ( a & b ) << endl;
}这给出了输出-
0
C ++提供了两个指针运算符,它们是运算符的地址(&)和间接运算符(*)。
指针是一个包含另一个变量地址的变量,或者可以说一个包含另一个变量地址的变量被称为“指向”另一个变量。变量可以是任何数据类型,包括对象,结构或指针本身。
运算符(&)的地址,它是*的补码。它是一元运算符,它返回由其操作数指定的变量(r值)的地址。例如,
#include <iostream>
using namespace std;
int main () {
   int  var;
   int  *ptr;
   int  val;
   var = 3000;
   //取var的地址
   ptr = &var;
   //取ptr上可用的值
   val = *ptr;
   cout << "值var:" << var << endl;
   cout << "ptr的值:" << ptr << endl;
   cout << "值val:" << val << endl;
   return 0;
}编译并执行上述代码后,将产生以下结果-
值var:3000 ptr的值:0xbff64494 值val:3000