※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.
참조자
- 변수에 대한 별칭이다.
- 초기화 시 값을 대입해주어야 한다.
- NULL을 삽입할 수 없다.
- 변수의 이름과 차이가 없다.
- 함수의 파라미터로 넘겨 받을 때 유용하다.
- 참조자 선언에는 제한이 없다.
- 하나의 값을 가리키는 참조자가 많을 경우, 값이 어디서 변경되었는지 파악하기 힘들기 때문에 위험하다.
Call by value VS Call by reference
- C에서는 함수의 매개변수로 변경할 값의 주소를 넘겨주는 것을 call-by-reference로 보았다.
- C++에서는 변경할 값의 주소를 넘겨주는 것 또한 주소값의 복사로 보기 때문에 call-by-value이다.
- 참조자의 사용 목적이다.
- 함수 호출 과정에서 레퍼런스로 전달된 인자가 레퍼런스 변수를 초기화 한다.
// call by value
void swap1(int a, int b);
// call by value (주소 값의 복사로 본다)
void swap2(int *a, int *b);
// call by reference:
void swap3(int &a, int &b);
int main() {
swap1(a, b);
swap2(&a, &b);
swap3(a, b);
}
※ 질문, 개선점, 오류가 있다면 댓글로 남겨주세요 :)
'Language > C++' 카테고리의 다른 글
[TheSSEN/C++] 4. 객체 지향 프로그래밍 (0) | 2025.01.27 |
---|---|
[TheSSEN/C++] 3. 클래스 (0) | 2025.01.27 |
[TheSSEN/C++] 1. C++ 개요 (0) | 2025.01.27 |
[TheSSEN/C++] 0. C와 C++ (0) | 2025.01.27 |
[C++] 36.Unmanaged Programming: 템플릿 프로그래밍 (0) | 2024.01.31 |