본문 바로가기

C++

[9] 레퍼런스와 인수(그리고 다수의 포인터 선언)

728x90

C++에는 포인터보다 쉽게 사용할 수 있는 레퍼런스라는 개념이 있습니다.

 

먼저, 레퍼런스를 사용하기 위해서는 식별자 앞에 "&"를 붙여서 선언합니다.

주의할 점은 레퍼런스를 선언할 때는 항상 초기화를 해야합니다. 분리해서 대입하는 것을 허용하지 않습니다.

또 레퍼런스는 변수와 같은 값과 주소를 갖지만, 포인터에는 대입할 수 없습니다.

 

이렇게 선언한 레퍼런스와 레퍼런스에 대입했던 변수는 값과 주소가 완전히 같습니다.

 

또한 함수에 인수를 전달할 때도 레퍼런스를 사용하면 값이 복사되지 않고 실인수를 그대로 넘길 수 있습니다.

위의 예시처럼 포인터를 쓰지 않고도 함수내에서 두 수를 교환할 수 있습니다.

 

만약 전달된 값을 바꾸고 싶지 않을 때는 다른 변수들처럼 const 키워드를 사용해서 변경하는 것을 막을 수 있습니다.

 

 

다수의 포인터 선언

C++을 할 때 포인터는 C에서의 포인터와 사용법이 완전히 같았기 때문에 읽어보긴 했으나 따로 적진 않았습니다.

다만, 다수의 포인터 변수를 한 줄에 선언하는 방식은 처음 보았기 때문에 방법을 적겠습니다.

 

포인터 변수를 여러 개 선언할 때는 각각의 변수마다 *를 붙여줘야 합니다.

만약 아래처럼 하나만 붙이고 선언을 하면 "포인터 변수 a와 일반 int형 변수 b를 선언한 것"과 같은 의미가 됩니다.

 

728x90

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

[11] 스코프와 기억수명  (0) 2021.04.30
[10] 배열  (0) 2021.04.30
[8] 기본인수  (0) 2021.04.29
[7] 함수 템플릿  (0) 2021.04.28
[6] 함수 오버로드  (0) 2021.04.28