참조 (C++)
참조를 선언할 수 있는 구문은 다음과 같습니다.
[storage-class-specifiers] [cv-qualifiers] type-specifiers
[ms-modifier] declarator [= expression];
참조를 지정하는 임의의 유효한 선언자를 사용할 수 있습니다. 참조가 함수 또는 배열 형식에 대한 참조가 아닌 한 다음 단순화된 구문이 적용됩니다.
[storage-class-specifiers] [cv-qualifiers] type-specifiers &
[cv-qualifiers] identifier [= expression];
참조를 선언하는 시퀀스는 다음과 같습니다.
1. 선언 지정자:
선택적 저장소 클래스 지정자.
선택적 const 및/또는 volatile 한정자
형식 지정자: 형식의 이름
2. 선언자:
선택적 Microsoft 전용 한정자. 자세한 내용은 Microsoft 전용 한정자를 참조하십시오.
& 연산자
선택적 const 및/또는 volatile 한정자
식별자입니다.
3. 선택적 이니셜라이저입니다.
배열 및 함수에 대한 포인터의 더 복잡한 선언자 형태도 배열 및 함수에 대한 참조에 적용됩니다. 포인터 및 선언자를 참조하십시오.
여러 선언자와 이니셜라이저가 단일 선언 지정자 뒤에 쉼표로 구분된 목록으로 나타날 수 있습니다. 예를 들면 다음과 같습니다.
int &i;
int &i, &j;
참조, 포인터 및 개체를 함께 선언할 수 있습니다.
int &ref, *ptr, k;
참조는 개체의 주소를 보유하지만 구문적으로 개체처럼 동작합니다.
다음 프로그램에서 개체 이름인 Today와 개체에 대한 참조인 TodayRef를 프로그램에서 동일하게 사용할 수 있습니다.
예제
// references.cpp
#include <stdio.h>
struct S {
short i;
};
int main() {
S s; // Declare the object.
S& SRef = s; // Declare the reference.
s.i = 3;
printf_s("%d\n", s.i);
printf_s("%d\n", SRef.i);
SRef.i = 4;
printf_s("%d\n", s.i);
printf_s("%d\n", SRef.i);
}
주석
이 단원의 항목: