래퍼런스 변수(&)
- 정의
- 변수에 또 다른 이름 부여
- 매개변수를 호출한 함수에서 값을 바꾸는 기능
- 일반 변수 형태에서만 사용
- 배열 사용 불가
- 변수에 또 다른 이름 부여
- 특징
- 선언 시, &연산자 사용
- 선언과 동시에 초기화
- 상수로 초기화 불가
- 함수 매개변수로 주로 사용
- 사용방법
- data_type& variable(value); or
data_type &variable = value;
- data_type& variable(value); or
#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;
void test1(int variable) {
variable = 100;
cout << "\nresult is " << variable << endl;
}
void test2(int &referenceVariable) {
referenceVariable = 100;
cout << "\nresult is " << referenceVariable << "\naddress : " << &referenceVariable << endl;
}
void test2(int *variable) {
*variable = 50;
cout << "\nresult is " << *variable << "\naddress : " << variable << endl;
}
void main() {
// 1. 일반함수
int variable(10);
test1(variable);
cout << "variable is : " << variable << endl;
// 2. Reference Variable
int variable2(10);
test2(variable2);// Overloading 시, int가 &int보다 우선순위 높음
cout << "variable2 is : " << variable2 << "\naddress : " << &variable2 << endl;
// 3. Pointer Variable
int variable3(10);
test2(&variable3); // 매개변수가 다르기 때문에 Overloading 가능
cout << "variable3 is : " << variable3 << "\naddress : " << &variable3 << endl;
}

포인터 변수(*)
래퍼런스변수와 가지고 있는 값은 메모리 주소로 같으나, 포인터는 값의 변경이 가능하다.
주소를 가지고 있는 변수로 data_type *ptr 로 선언되며
값 또는 변수를 참조(주소)한 값을 가지게 된다.
- 사용방법
- data_type* variable(&value); or
data_type *variable = &value; or
data_type * variable = nullptr;
- data_type* variable(&value); or
'C++ > 기초' 카테고리의 다른 글
[C++] 문자열 (1) | 2023.12.19 |
---|---|
[C++] 동적할당 (1) | 2023.12.18 |
[C++] bool 자료형 (0) | 2023.12.14 |
[C++] 오버로딩, 디폴트 매개변수, 초기화 (0) | 2023.12.14 |
[C++] namespace (0) | 2023.12.14 |