C ++中“&”符号的用法是什么?

&符号在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