간접 참조 연산자: *
구문
* cast-expression
설명
단항 간접 참조 연산자(*
)는 포인터를 역참조합니다. 즉, 포인터 값을 l-value로 변환합니다. 간접 연산자의 피연산자는 형식에 대한 포인터여야 합니다. 간접 참조의 결과는 포인터 형식이 파생된 형식입니다. 이 문맥에서 사용되는 *
연산자의 의미는 이항 연산자로 사용될 때의 의미(곱셈)와 다릅니다.
피연산자가 함수를 가리키는 경우 결과는 함수 지정자입니다. 스토리지 위치를 가리키는 경우 결과는 스토리지 위치를 지정하는 l-value입니다.
포인터에 대한 포인터를 역참조하기 위해 간접 참조 연산자를 누적하여 사용할 수도 있습니다. 예시:
// expre_Indirection_Operator.cpp
// compile with: /EHsc
// Demonstrate indirection operator
#include <iostream>
using namespace std;
int main() {
int n = 5;
int *pn = &n;
int **ppn = &pn;
cout << "Value of n:\n"
<< "direct value: " << n << endl
<< "indirect value: " << *pn << endl
<< "doubly indirect value: " << **ppn << endl
<< "address of n: " << pn << endl
<< "address of n via indirection: " << *ppn << endl;
}
포인터 값이 잘못된 경우 결과가 정의되지 않습니다. 다음 목록은 포인터 값을 무효화하는 가장 일반적인 조건의 일부입니다.
포인터가 null 포인터입니다.
포인터가 참조 시 표시되지 않는 로컬 항목의 주소를 지정합니다.
포인터가 가리키는 개체의 형식에 대해 부적절하게 정렬된 주소를 지정합니다.
포인터가 실행 중인 프로그램에서 사용되지 않는 주소를 지정합니다.
참고 항목
단항 연산자가 있는 식
C++ 기본 제공 연산자, 우선 순위 및 결합성
주소 연산자: &
연산자 주소 및 간접 참조
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기