C++기초

220323(3) - 참조(Reference)

hyrule 2022. 3. 25. 16:51
#include <iostream>

int main()
{
	/*
	레퍼런스 : 다른 변수를 참조하여 값을 컨트롤 할 수 있다.
	포인터와 비슷한 기능을 하지만 포인터는 C언어에서도 지원하는 반면
	레퍼런스는 C++ 버전의 포인터이다.(좀 더 사용하기 쉬운 포인터)

	처음 한번 참조하는 대상이 지정되면 다른 대상을 참조할 수 없다.
	장점: 역참조를 할 필요가 없다.(바로 접근이 가능하다)

	int& << 레퍼런스 문법

	레퍼런스는 저장 공간을 반드시 필요로 하는것은 아니다.
	하지만 컴파일러가 구현에 따라서 필요할 경우 공간을 만들수도 있다.
	컴파일러에 따라 공간이 잡힐수도 있고 안 잡힐수도 있음.
	그래서 sizeof로 측정이 안 됨.

	메모리가 할당될 경우 포인터와 같은 크기의 공간이 할당된다.

	앞으로 const reference 형태로 많이 사용하게 될 것임.
	구조체와 함수에서 많이 쓰임.
	*/

	int Number = 100;
	int Number1 = 200;
	int* pNumber = &Number;
	int& Ref = Number;

	int*& pRef = pNumber;
	//포인터에 대한 레퍼런스도 가능하다.

	Ref = 2020;
	pRef = &Number1;


	std::cout << Number << std::endl;
	std::cout << *pNumber << std:: endl;




	//해당 내용 암기할 것
	return 0;
}