다음을 통해 공유


참조 (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);
}
  

주석

이 단원의 항목:

참고 항목

참조

참조 초기화