Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 생성자 #자바 #기록남기기
- scanf
- C언어 #문자열변환 #정수형변환
- MVC #디자인패턴
- 커밋
- 옵셔널태그
- 그룹핑
- COMMIT
- 공부내용정리
- GIT
- 기록하기
- 스프링부트
- 파이썬
- Numpy #TIL #넘파이 기초
- 머신러닝 #회귀 #규제
- 스프링 입문
- 머신러닝 #학습내용정리
- SQL
- 개발공부
- MODIFY
- 작업 영역
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- SafeUpdate
- 단축키정리
- 김영한 #SOLID #객체지향
- 에러포스팅
- 크롬브라우저
- group by
- 컬럼수정
- 클래스 #아이디
Archives
- Today
- Total
데이터 분석가 몽구리
[C++] 참조자(Reference)의 이해 본문
참조자(Reference)의 이해
"변수는 할당된 메모리 공간에 붙여진 이름이다. 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다"
int num1 = 2010;
위의 변수 선언을 통해서 2010으로 초기화된 메모리 공간에 num1이라는 이름이 붙게 된다.
int &num2 = num1; // 변수 num1에 대한 참조자 num2를 선언해라!
결과적으로 num1이라 이름 붙어있는 메모리 공간에 num2라는 이름이 하나 더 붙게 된다.
참조자는 자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름이다
#include<iostream>
int main(void)
{
int num1 = 1020;
int& num2 = num1; // 참조자 num2 선언
num2 = 3042;
std::cout << "VAL: " << num1 << std::endl;
std::cout << "REF: " << num2 << std::endl;
std::cout << "VAL: " << &num1 << std::endl;
std::cout << "REF: " << &num2 << std::endl;
return 0;
}
참조자는 변수를 대상으로만 선언이 가능하다.
하지만 일단 선언이 되고 나면, 변수와 차이가 없다.
참조자는 별칭**
"변수에 별명(별칭)을 하나 붙여주는 것이 참조자이다"
참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언가능
참조자의 수에는 제한이 없다. 즉, 여러 개의 참조자를 선언하는 것도 가능하다.
int num1 = 2759;
int &num2 = num1;
int &num2 = num1;
참조자를 대상으로 또 다른 참조를 만드는 일이 가능하지만, 흔히 필요하지는 않다.
#include<iostream>
using namespace std;
int main(void)
{
int arr[3] = { 1,3,5 };
int& ref1 = arr[0];
int& ref2 = arr[1];
int& ref3 = arr[2];
cout << ref1 << endl;
cout << ref2 << endl;
cout << ref3 << endl;
return 0;
}
배열요소는 변수로 간주되어 참조자의 선언이 가능하다. 그리고 포인터 변수도 변수이기 때문에 참조자의 선언이 가능합니다.
'C++' 카테고리의 다른 글
[C++]bool 자료형 (0) | 2024.07.31 |
---|---|
[C++] 변수, cout, Debug 예제 (0) | 2024.04.28 |
C++ 출력과 데이터의 입력 (0) | 2024.04.22 |