-
열혈 C++ 프로그래밍 (참조자 이해하기)Language/C 2023. 8. 14. 22:51
&연산자의 경우 이미 선언된 변수의 앞에 오면 주소 값의 반환을 명령하는 뜻이지만, 새로 선언되는 변수의 이름 앞에 등장하면, 이는 참조자의 선언을 뜻한다.
//주소값 반환 int a; &a; //참조자 선언 int a = 100; int &b = a; int b = 2700; std::cout << "a: " << a << std::endl; //a: 2700 std::cout << "b: " << b << std::endl; //b: 2700
a라는 이름이 붙은 메모리 공간에 b라는 이름이 하나 더 붙게되었다.
(참조자는 자신이 참조하는 변수를 대신할 수 있는 또하나의 이름)
참조자의 수에는 제한이 없으며, 참조자를 대상으로도 참조자를 선언할 수 있다.
//참조자 수에는 제한이 없다. int num1 = 1234; int &num2 = num1; int &num3 = num1; int &num4 = num1; //참조자를 대상으로도 참조자를 선언할 수 있다. int num1 = 1234; int &num2 = num1; int &num3 = num2; int &num4 = num3;
참조자를 이용한 call by reference
$include <iostream> void Swap(int &ref1, int &ref2){ int temp = ref1; ref1 = ref2; ref2 = temp; } //call by reference int main(void){ int val1 = 10; int val2 = 20; Swap(val1, val2); std::cout << "val1 :" << val1 << std::endl; std::cout << "val2 :" << val2 << std::endl; return 0; } //실행 시 val1: 20 val2: 10
매개변수는 함수가 호출되어야 초기화가 진행되는 변수들이라 함수호출 시 전달되는 인자로 초기화를 진행하겠다는 의미의 선언이다.
'Language > C' 카테고리의 다른 글
열혈 C++ 프로그래밍 (클래스 완성) (0) 2023.08.19 열혈 C++ 프로그래밍 (클래스 기본) (0) 2023.08.15 열혈 C++ 프로그래밍 (Chapter01 문제풀이) (0) 2023.08.13 C 재귀호출 (하노이탑) (0) 2023.07.30 백준 10809번 : 알파벳 찾기 (0) 2021.06.10