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
'언리얼 > 언리얼 기본 개념' 카테고리의 다른 글
언리얼 머테리얼 변경시키기 (1) | 2024.01.09 |
---|---|
언리얼 지원언어 영어/한글 바꾸기 (1) | 2024.01.09 |
언리얼 오브젝트 추가하기 (0) | 2024.01.09 |