언리얼/언리얼 기본 개념

언리얼 C++ 위치 역참조와 포인터

KFRI 2024. 2. 9. 18:05

C++ 역참조와 포인터 정의

역참조(dereference)란 프로그래밍에서 데이터가 저장된 주소로 가서, 그 주소에 해당하는 데이터 값에 접근하는 것을 말한다. 포인터(pointer)는 데이터가 저장된 주소값을 가리키지만, 역참조는 그 반대로 주소를 통해 데이터에 접근한다.

 

 

포인터(Pointer) 데이터가 저장된 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부릅니다.

👉 메모리의 주소, 즉 ‘어디’인지(=위치 정보)를 저장하는 전용 변수! 

  • 포인터를 통해 프로그램의 변수에 접근하여 읽고 쓰거나, 함수를 실행할 수 있어요.
  • 자료형을 선언할 때 해당 변수명의 앞에 별표*를 붙이면 앞 자료형을 가리키는 포인터 변수가 됩니다.
  • 이렇게 선언된 포인터 변수에서 주소를 얻고 싶은 변수의 앞에 앰퍼샌드&를 붙여주면 그 변수의 주소값이 저장됩니다.
  • 즉 포인터는 프로그래머가 컴퓨터 메모리에 직접 접근해서 제어할 수 있게 하는 도구예요!

c++에서 포인터 예시

int value = 5;
std::cout << &value; // value의 주소를 출력한다.
std::cout << value;  // value의 값을 출력한다.

int *ptr = &value; // ptr은 value를 가리킨다.
std::cout << ptr;  // ptr이 가리키는 주소를 출력한다. (=&value)
std::cout << *ptr; // ptr을 역참조한다. (ptr이 가리키는 주소의 값을 출력한다. =value)

// 0012FF7C
// 5
// 0012FF7C
// 5
출처: https://boycoding.tistory.com/199 [소년코딩:티스토리]

 

언리얼 예시코드

void UMover::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
	Super::TickComponent(DeltaTime, TickType, ThisTickFunction);



	AActor* owner= GetOwner();// 포인터로 GetOwner의 주소를 가리킴
	FVector location= owner-> GetActorLocation();//(*owner).GetActorLocation(); 로 도 표현
    						//GetActorLocation()는엑터의 위치값을 가져오는함수
    
	FString locationName= location.ToCompactString();//백터를 문자열로 바꾸어서 가져와야 LOG로 찍을수있음
     						//ToCompactString() 문자열로 바꾸는 함수
                                                
	UE_LOG(LogTemp, Display, TEXT("Onwer:%s"),*locationName);



}

출력

 

 

 

C++ 07.07 - 포인터 소개 (Introduction to pointer)

07.07 - 포인터 소개 (Introduction to pointer) '01.02 - 변수, 초기화 및 할당' 포스트에서 변수는 값을 보유하고 있는 메모리 조각의 이름이라는 것을 배웠다. 프로그램이 변수를 인스턴스화 할때 사용 가

boycoding.tistory.com

 

 

왜 C언어 포인터는 이해하기 어려울까? - 인프런 | 스토리

교수님! 진도가 너무 빠릅니다 😭 C언어 입문의 최종보스, 들어는 봤나 포인터! C언어 배워보신 분 손! 프로그래밍에 관심이 있다면 한 번쯤은 ‘C언어에서 포인터가 그렇게 어렵다더라’ 하는

www.inflearn.com

 

 

 

역참조 - 해시넷

역참조(dereference)란 프로그래밍에서 데이터가 저장된 주소로 가서, 그 주소에 해당하는 데이터 값에 접근하는 것을 말한다. 포인터(pointer)는 데이터가 저장된 주소값을 가리키지만, 역참조는 그

wiki.hash.kr