2023년 5월 29일 월요일

[C++] Study - namespace, reference 기본

이름공간(namespace)

std: C++ 표준 라이브러리의 모든 함수, 객체 등이 정의된 namespace

중복된 이름을 가진 객체를 구분하기 위해 쓰임.


참조자(reference): 변수나 상수를 가리키는 포인터 이외의 방식


int a1 = 2;
int& a2 = a1;

a2 = 4;
// a1 값과 a2의 값은 4로 똑같다.


포인터와의 차이점: 정의 시에 누구의 참조인지 명시해야 함. 참조 대상은 변할 수 없음. 레퍼런스는 메모리 상에 존재하지 않을 수 있음.


int x;
int& y = x;
int& z = y;	// int& z = x; 와 동일
// y와 z는 모두 x의 참조자임.
예를 들어 cin은 레퍼런스로 값을 받아들인다.

상수도 레퍼런스를 가질 수 있지만 상수는 변하는 값이 아니기 때문에 const로 선언 시에만 레퍼런스를 가질 수 있다.


const int& ref = 5;
레퍼런스 배열은 존재할 수 없지만 배열의 레퍼런스는 가능하다.


// 다음은 불가능
// int& ref[2] = {arr1, arr2};
// 다음은 가능
int arr[2] = {1, 2};
int(&ref)[2] = arr;

ref[1] = 5;

댓글 없음:

댓글 쓰기