&기호는 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