일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 머신러닝
- LG
- PCA
- OpenAI
- 분류
- LG Aimers
- 지도학습
- 오블완
- AI
- Classification
- regression
- supervised learning
- 회귀
- deep learning
- Machine Learning
- LG Aimers 4th
- 해커톤
- LLM
- 딥러닝
- ChatGPT
- gpt
- GPT-4
- 티스토리챌린지
Archives
- Today
- Total
SYDev
C++ Chapter 02-3 : 참조자(Reference) 본문
참조자(Reference)
참조자는 자신이 참조하는 변수를 대신할 수 있는 또 하나의 새로운 이름이다. 참조자의 선언 방법은 다음과 같다.
int num1 = 20; // num1이 초기화되지 않은 상태로 참조자를 선언할 시에 compile error 발생
int &num2=num1 //num2가 새로 선언된 변수일 시에 num2가 참조자로 선언된다.
그렇다면 다음 예제를 살펴보자.
#include <iostream>
using namespace std;
int main(void)
{
int num1 =1024;
int &num2 = num1;
num2 = 2048;
cout<<num1<<endl;
cout<<num2<<endl;
cout<<&num1<<endl;
cout<<&num2<<endl;
return 0;
}
2048
2048
0x61fe14
0x61fe14
위 예제를 통해서 해당 변수의 참조자와 변수는 이름을 제외하고 같다는 것을 알 수 있다.
또한, 참조자 생성 수에는 제한이 없고 참조자를 대상으로 참조자를 만들 수 있다.
int num1 = 2048;
int &num2 = num1;
int &num3 = num1;
int &num4 = num1;
int num1 = 2048;
int &num2 = num1;
int &num3 = num2;
int &num4 = num3;
참조자(Reference)의 선언 가능 범위
참조자는 선언과 동시에 초기화되어야 한다. 이외에도 참조자 선언의 특징에 대해 살펴보자.
const int num = 20;
int &ref = 20; //compile error, 참조자는 변수에 대해서만 선언 가능
int &ref; //compile error, 참조자는 선언됨과 동시에 누군가 참조해야 함
int &ref = num; //compile error, 참조자는 상수 대상으로 선언 불가능
int &ref = NULL; //compile error, 참조자는 선언과 동시에 NULL로 초기화 불가능
아래 예제를 살펴보자.
#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;
}
1
3
5
위 예제처럼 배열 요소는 변수로 간주되어 참조자 선언이 가능하다.
아래 예제를 살펴보자.
#include <iostream>
using namespace std;
int main(void)
{
int num = 12;
int *ptr = #
int **dptr = &ptr;
int &ref = num;
int *(&pref) = ptr;
int **(&dpref) = dptr;
cout<<ref<<endl;
cout<<*pref<<endl;
cout<<**dpref<<endl;
return 0;
}
12
12
12
위와 같이 참조자는 포인터 변수를 대상으로도 선언이 가능하다.
출처 : 윤성우, <윤성우의 열혈 C++ 프로그래밍>, 오렌지미디어, 2010.05.12
'Programming Lang > C++' 카테고리의 다른 글
C++ Chapter 02-4 : 함수에서의 참조자(Reference)(2) (0) | 2023.07.11 |
---|---|
C++ Chapter 02-4 : 함수에서의 참조자(Reference)(1) (1) | 2023.07.10 |
C++ Chapter 02-2 : 자료형 Bool (0) | 2023.07.06 |
C++ Chapter 02-1 : 포인터(pointer), 상수화(const)(2) (0) | 2023.07.06 |
C++ Chapter 02-1 : 포인터(pointer), 상수화(const)(1) (0) | 2023.07.05 |