English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 포인터 연산자(&와 *)

C++ 연산자

C++ 주소 연산자 &와 간접 주소 연산자를 제공합니다. *.

포인터는 다른 변수의 주소를 포함한 변수로, 다른 변수의 주소를 포함한 변수를 "지정"이라고 할 수 있습니다. 변수는任意의 데이터 타입이 될 수 있으며, 객체, 구조체 또는 포인터를 포함합니다.

주소 연산자 &

&는 일원 연산자로, 연산자의 메모리 주소를 반환합니다. 예를 들어, var가 정수형 변수라면 &var는 그 주소입니다. 이 연산자는 다른 일원 연산자와 같은 우선순위를 가지며, 연산할 때는 오른쪽에서 왼쪽으로 순서로 수행됩니다.

& 연산자를 다음과 같이 읽을 수 있습니다."주소 연산자"그것은 다음과 같다는 의미입니다.&var "var의 주소"로 읽습니다.

간접 주소 연산자 *

두 번째 연산자는 간접 주소 연산자입니다 *그것은 & 연산자의 보완입니다.* 이는 일원 연산자로, 연산자가 지정한 주소의 변수의 값을 반환합니다.

다음 예제를 보고 이 두 연산자의 사용법을 이해해 주세요.

#include <iostream>
 
using namespace std;
 
int main ()
{
   int  var;
   int  *ptr;
   int  val;
   var = 3000;
   // var의 주소 가져오기
   ptr = &var;
   // ptr의 값을 가져오기
   val = *ptr;
   cout << "var의 값: " << var << endl;
   cout << "ptr의 값: " << ptr << endl;
   cout << "val의 값: " << val << endl;
   return 0;
}

위의 코드가 컴파일 및 실행될 때, 다음과 같은 결과가 생성됩니다:

var의 값:3000
ptr의 값: 0xbff64494
val의 값:3000

C++ 연산자