본문 바로가기
IT/C++

C++ References 정리

by icebear3000 2023. 5. 28.
반응형

참조(References)


 참조 타입이라는 다른 (다소 비슷한) 개념도 있습니다. 참조 타입은 메모리에 이미 존재하는 객체에 대한 별칭입니다. 참조는 초기화되어야 합니다. 우리는 참조 타입을 type_name 다음에 앰퍼샌드 &로 설명합니다.

 

int main()
{
int x = 123;
int& y = x;
}

 

 

 이제 우리는 메모리에 있는 같은 int 객체를 가리키는 두 개의 다른 이름이 있습니다. 우리는 다음 이미지를 사용하여 메모리에 있는 객체를 시각화할 수 있습니다.

 만약 우리가 그 중 하나에 다른 값을 할당한다면, 객체의 값이 변경될 것입니다. 왜냐하면 우리는 메모리에 하나의 객체를 가지고 있지만, 두 개의 다른 이름을 사용하고 있기 때문입니다.

 

int main()
{
int x = 123;
int& y = x;

x = 456; // both x and y now hold the value of 456
y = 789; // both x and y now hold the value of 789
}

 

 또 다른 개념은 상수 참조(const reference)입니다. 상수 참조는 읽기 전용 객체에 대한 별칭입니다.

 

int main()
{
int x = 123;
const int& y = x; // const reference
x = 456;
// both x and y now hold the value of 456
}

 

 함수와 함수 매개변수에서 참조(reference)와 상수 참조(const reference)에 대해 더 자세히 알아볼 것입니다. 지금은 기존 객체에 대해 우리가 지정하는 별명(alias) 또는 다른/추가적인 이름으로 간주합시다.


 int* p;와 같은 포인터 유형 선언에서 *의 사용과 *p = 456와 같이 포인터를 역참조하는 *의 사용을 혼동하지 않는 것이 중요합니다. 같은 별표 문자이지만 두 가지 다른 맥락에서 사용됩니다.


 int& y = x;와 같은 참조 유형 선언에서 &의 사용과 int* p = &x와 같이 주소를 가리키는 주소 연산자로서의 &의 사용을 혼동하지 않는 것이 중요합니다. 동일한 리터럴 기호가 두 가지 다른 용도로 사용됩니다.

 

 

반응형

'IT > C++' 카테고리의 다른 글

C++ Automatic Type Deduction (auto)  (0) 2023.05.30
C++ Strings(c_str() / Substrings)  (0) 2023.05.29
C++이란?  (0) 2023.05.27
C++ Pointers 정리  (0) 2023.05.27
C++ 기초 총정리 요약  (0) 2023.04.24

댓글