다음을 통해 공유


간접 참조 연산자의 주소 및

간접 참조 연산자 (*)는 값에 대 한 포인터를 통해 직접 액세스 합니다.피연산자는 포인터 값 이어야 합니다.이 연산의 결과 피연산자가 해결 값입니다. 는 피연산자를 가리키는 주소에 있는 값입니다.결과의 형식은 피연산자의 주소 형식이입니다.

피연산자는 함수를 가리키는 경우 결과 함수 지정자입니다.저장소 위치를 가리키는 경우 결과 저장소 위치를 지정 하는 i-값입니다.

포인터 값이 잘못된 경우 결과가 정의되지 않습니다.다음은 포인터 값을 무효화 하는 가장 일반적인 조건 중 일부를 포함 합니다.

  • 포인터는 null 포인터가입니다.

  • 포인터가 참조 시 표시 되지 않는 로컬 항목의 주소를 지정 합니다.

  • 포인터가 가리키는 개체의 형식에 대해 부적절 하 게 맞춰진 주소를 지정 합니다.

  • 포인터 실행 프로그램에서 사용 되는 없는 주소를 지정 합니다.

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

주소 연산의 결과 피연산자에 대 한 포인터입니다.포인터를 사용 하 여 주소가 지정 된 종류의 피연산자 형식이입니다.

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

예제

다음 예제에서는이 선언을 사용합니다.

int *pa, x;
int a[20];
double d;

이 문은 주소 연산자를 사용합니다.

pa = &a[5];

주소 연산자 ()의 여섯 번째 요소 배열의 주소 사용 a.결과 포인터 변수 저장 됩니다 pa.

x = *pa;

간접 참조 연산자 (*)이이 예제에서 액세스 하는 데 수는 int 값에 저장 된 주소에 pa.값을 정수 변수에 할당 x.

if( x == *&x )
    printf( "True\n" );

단어를 인쇄 하는이 예제 True, demonstrating는 주소에는 간접 참조 연산자를 적용 한 결과 x 같은 x.

int roundup( void );     /* Function declaration */

int  *proundup  = roundup;
int  *pround  = &roundup;

함수를 한 번만 roundup 선언 된 두 개의 포인터를 roundup 선언 되 고 초기화 됩니다.첫 번째 포인터 proundup, 두 번째 동안 함수 이름만 사용 하 여 초기화 됩니다 pround, 초기화에서 주소 연산자를 사용 하 여.초기화 같은 것입니다.

참고 항목

참조

간접 참조 연산자: *

주소 연산자: &