다음을 통해 공유


주소 연산자: &

& cast-expression

설명

단항 연산자의 주소 ()는 피연산자의 주소를 사용 합니다.주소 연산자의 피연산자 함수 지정자 나는 비트 필드 이며으로 선언 된 개체를 지정 하는 i-값 중 하나가 될 수 있습니다 있는 등록 저장소 클래스 지정자입니다.

주소 연산자만 기본, 구조, 클래스를 사용 하 여 변수를 적용할 수 있습니다 또는 파일 범위 수준 또는 선언 된 공용 구조체 형식을 참조 배열 아래 첨자입니다.이러한 식에 주소 연산자를 포함 하지 않는 상수 식 수 수 가감 식에서 주소를 합니다.

함수 또는 l 값, 식의 결과를 적용 하면 포인터 형식 (r-value)는 피연산자의 형식에서 파생 됩니다.예를 들어, 피연산자의 형식이 char, 식의 결과 형식에 대 한 포인터는 char.적용은 주소 연산자를 const 또는 volatile 개체, 계산 consttype***** 또는 volatiletype*****, 어디 type 는 원래 개체의 유형입니다.    

주소 연산자입니다 적용 경우에 정규화 된 이름, 결과 여부에 따라 다릅니다의 정규화 된 이름이 정적 멤버를 지정.이 경우 결과 멤버의 선언에 지정 된 형식에 대 한 포인터입니다.구성원이 정적 이면 결과 구성원에 대 한 포인터입니다. 이름 지정 된 클래스의 정규화 된 클래스 이름이.(참조 하십시오 기본 식 은 에 대 한 자세한 내용은 정규화 된 클래스 이름이입니다.) 다음 코드 단편은 어떻게 결과 멤버가 정적 인지 여부에 따라 다릅니다 보여 줍니다.

// expre_Address_Of_Operator.cpp
// C2440 expected
class PTM {
public:
           int   iValue;
    static float fValue;
};

int main() {
   int   PTM::*piValue = &PTM::iValue;  // OK: non-static
   float PTM::*pfValue = &PTM::fValue;  // C2440 error: static
   float *spfValue     = &PTM::fValue;  // OK
}

이 예제에서는 식 &PTM::fValue 종류를 얻을 수 float * 형식 대신 float PTM::* 때문에 fValue 는 정적 멤버입니다.

어떤 버전의 함수 참조 하 고 명확한 경우에 오버 로드 된 함수의 주소를 가져올 수 있습니다.참조 하십시오 오버 로드 된 함수에 주소 의 특정 주소를 구하는 방법에 대 한 내용은 오버 함수 로드 합니다.

주소 연산자는 참조 형식에 적용 참조 바인딩된 개체에 적용 하는 연산자와 동일한 결과 제공 합니다.예를 들면 다음과 같습니다.

예제

// expre_Address_Of_Operator2.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
   double d;        // Define an object of type double.
   double& rd = d;  // Define a reference to the object.

   // Obtain and compare their addresses
   if( &d == &rd )
      cout << "&d equals &rd" << endl;
}

Output

&d equals &rd

다음 예제에서는 주소 연산자를 사용 하 여 포인터 인수를 함수에 전달 하.

// expre_Address_Of_Operator3.cpp
// compile with: /EHsc
// Demonstrate address-of operator &

#include <iostream>
using namespace std;

// Function argument is pointer to type int
int square( int *n ) {
   return (*n) * (*n);
}

int main() {
   int mynum = 5;
   cout << square( &mynum ) << endl;   // pass address of int
}

Output

25

참고 항목

참조

단항 연산자 식

C + + 연산자

연산자 우선 순위 및 결합성

Lvalue 참조 선언 자: &

개념

간접 참조 연산자의 주소 및