[내일배움캠프 Unity 9기 사전캠프]

04/01 복습 내용

kyvv 2025. 4. 1. 17:21

참조자에 대한 복습

-참조자는 포인터와 기능적으로 완전히 동일, 다만 포인터의 ->대신 일반 구조체, 클래스 문법처럼 사용 가능하나,
내가 만든 함수에서 참조자로 받을 경우 다른 사람이 내 함수를 사용할 때 신뢰할 수 없는 경우가 생길 수 있음

참조자가 포인터와 동일한 기능이기 때문에 값의 변경이나 매개변수의 교체가 이루어질 수 있으니 이를 막기 위해서 const 선언을 해줄 필요 있음, 없다면 내부에서 값 변경이 일어날 것임을 염두해야 한다

이건 자주 까먹을 수 있는 내용 -- const가 붙는 위치, * 앞과 뒤로 나뉜다

* 앞의 경우: 해당 포인터가 가리키는 값의 내용물을 변경할 수 없음

const int * a  =  &num    ==>   num의 값을 바꿀 수 없다 (num이 10이라면 20을 넣어서 변경할 수 없다, 다만 num 대신 num2와 같은 다른 변수로 교체는 가능, *a = 20 불가능 / a = &num2 가능)

* 뒤의 경우: 해당 포인터가 가리키는 주소를 변경할 수 없다

int * const a = &num   ==>  위와 반대로 num의 값을 바꿀 수 있지만, num2 로의 교체는 불가능(num이 10이라면 20, 30 등의 다른 값으로 변경 가능, *a = 20 과 같이 / a = &num2는 불가능)