C언어 에서는 어떠한 변수를 가리키고 싶을 땐 반드시 포인터를 사용해야 했다. C++에서는 다른 변수나 상수를 가리키는 또 다른 방법으로 **참조자(레퍼런스)**를 제공한다. 참조자를 지정하는 방법은 가리키고자 하는 타입 뒤에 **&**를 붙이면 된다.
#include <iostream>
int main() {
int a = 3;
int& another_a = a;
another_a = 5;
std::cout << "a : " << a << std::endl;
std::cout << "another_a : " << another_a << std::endl;
return 0;
}
위 예제에서 참조자 another_a의 역할은 a의 또 다른 이름이라고 컴파일러에게 알려주는 것이다. another_a에 어떠한 작업을 수행하든 이는 a에 작업을 하는 것과 마찬가지이다.
// 상수 리터럴 참조 예시
const int &ref = 4;
// 배열 참조 예시
int arr[3] = {1, 2, 3};
int(&ref)[3] = arr;
int arr[3][2] = {1, 2, 3, 4, 5, 6};
int (&ref)[3][2] = arr;