C++ 참조자(Reference) 사용법
C++ 참조자는 변수를 가리키는 변수다.
예를 들어 숫자 10을 담고 있는 변수 a 가 있다.
a를 가리키는 참조자 변수 b를 만들었다.
b에 값을 변경하면 a도 바뀌게 된다.
참조자(Reference) 이해 |
사용법은 아래와 같다.
int a = 10; int &b = a; |
위에서 굵은 글씨로 &b라고 표시 된 부분이 참조자 변수 사용 방법이다.
&는 변수의 주소로도 사용되어 포인트를 가리킬때도 사용된다.
하지만 위의 참조자는 다른 내용이니 혼돈하지 말자.
[참조자의 잘못 사용 예]
잘못된 사용 |
설명 |
int &b = 10; |
참조자에 직접 데이터를 넣을 수 없다. |
int &b; |
참조자 선언과 동시에 가리킬 변수를 설정해 줘야 한다. |
int &b = NULL; |
참조자는 NULL 값이 허용되지 않는다. |
[전체 예제]
#include <iostream> using namespace std; int main(int argc, char** argv) { int a = 10; int &b = a; cout<<"a : "<< a <<endl; cout<<"b : "<< b <<endl; b = 20; cout<<"a : "<< a <<endl; cout<<"b : "<< b <<endl;
return 0; } |
a : 10 b : 10 a : 20 b : 20 |
참조자(Reference)를 이용한 함수 호출 |
함수의 인자를 참조자로 선언 하면 어떻게 될까.
void dataPlus( int &value ); |
해당 함수를 호출 할 때 인자 값으로 넣은 변수가 변경 된다.
이것을 Call-by-reference라 한다.
참고로 C에서는 다음과 같이 선언해야 호출 한 쪽의 변수가 변경 된다.
void dataPlus( int *value );
포인터는 복잡하니 참고로만 알아둔다.
[전체 예제]
#include <iostream> using namespace std; void dataPlus( int &value) { value = value + 1; } int main(int argc, char** argv) { int a = 10; cout<<"a : "<< a <<endl; dataPlus( a ); cout<<"a : "<< a <<endl;
return 0; } |
a : 10 a : 11 |
'프로그램 > C++' 카테고리의 다른 글
[C++] bool 자료형 (0) | 2017.12.29 |
---|---|
[C++] namespace 사용법 (0) | 2017.12.27 |
[C++]인라인 함수 사용법 (0) | 2017.12.26 |
[C++]함수 매개변수 디폴트 값 (0) | 2017.12.25 |
[C++]함수 오버로딩 (Function Overloading) (0) | 2016.12.03 |