Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 '&'기호의 용도는 무엇입니까?


&기호는 C++에서 연산자로 사용됩니다. 2개의 다른 위치에서 사용되는데, 하나는 비트 및 연산자로, 다른 하나는 연산자의 포인터 주소로 사용됩니다.

비트 AND

비트 AND 연산자(&)는 첫 번째 피연산자의 각 비트를 두 번째 피연산자의 해당 비트와 비교합니다. 두 비트가 모두 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-value)의 주소를 반환하는 단항 연산자입니다. 예를 들어,

예시

#include <iostream>
using namespace std;

int main () {
   int  var;
   int  *ptr;
   int  val;

   var = 3000;

   // take the address of var
   ptr = &var;

   // take the value available at ptr
   val = *ptr;
   cout << "Value of var :" << var << endl;
   cout << "Value of ptr :" << ptr << endl;
   cout << "Value of val :" << val << endl;

   return 0;
}

출력

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -

Value of var :3000
Value of ptr :0xbff64494
Value of val :3000