수업 일기장

수업 일기장 #참조(Reference)

빅토리아레몬탄산수 2021. 1. 25. 15:52

일단 포인터를 작성 해봤다.

CPoint* pPt; // 주소값을 생성 그 주소의 이름을 지정
pPt = &point;  // 그 주소값 안에 &point의 주소값을 입력 4byte의 포인터가 생성 되었다.
pPt->SetY(10); // pPt -> 포인터로 가르켜 SetY(10) SetY에 10이란 숫자를 입력
pPt->Print(); // 출력하면 10이 찍혀있다.

하지만 참조의 경우

CPoint& rPt = point; // 따로 생성하지 않고 그값을 가르키는것
	rPt.SetX(20); // SetX에 20값을 바로 넣는다. 
	rPt.Print(); // 출력 시 20이 나옴.

 

포인터와 다르게 이름을 하나 더 만드는 형식, 그래서 바이트도 같다고 나온다. 주소값 또한 포인터와 다르게 원래 값과 동일하다.

 

CPoint& rPt = point;

 

 

CPoint& rPt;
rPt = point; // <- 안됨


새로 만드는게 아니라서 생성과 동시에 초기화를 시켜줘야함.

 

그럼으로 참조를 sizeof 할 시 가르키는 값과 같은 Byte가 나오면 주소값도 동일함.

주의. Byte값이 8이 나와서 참조값이 8이 아닌 참조값이 가르키는 값이 8이라는 뜻