프로그래밍/C++

call by value, call by address, call by reference

swedu 2023. 2. 16. 09:00
728x90
반응형

2023.02.16  최초작성

 

 

함수 호출 시 전달하는 인수 값을 함수 내에 매개변수에서 어떻게 사용되는가를 세 가지로 구분할 수 있다.

call by value, call by address, call by reference이다.

call by value, call by address는 값을 복사하는 것이다. 포인터는 값이 주소일 뿐이니 값 복사라고 하는 것이 맞다.

 
#include <iostream>
using namespace std;
void func02(int a1, int* a2, int& a3) {
	a1 = 10;
	*a2 = 20;
	a3 = 30;
	cout << "func02 : " << a1 << ' ' << *a2 << ' ' << a3 << endl;
}
int main() {
	int a1(1);
	int a2(2);
	int a3(3);
	cout << "func02 호출전 : " << a1 << ' ' << a2 << ' ' << a3 << endl;
	func02(a1, &a2, a3);// call by value, call by address, call by reference
	cout << "func02 호출후 : " << a1 << ' ' << a2 << ' ' << a3 << endl;

	return EXIT_SUCCESS;
}

[실행 결과]

func02 호출전 : 1 2 3

func02 : 10 20 30

func02 호출후 : 1 20 30

 
728x90
반응형

 

728x90
반응형

'프로그래밍 > C++' 카테고리의 다른 글

C++ 네임 스페이스  (0) 2023.02.17
동적 할당 new와 delete  (0) 2023.02.16
auto자료형을 이용한 함수 포인터  (0) 2023.02.16
r-value 참조  (0) 2023.02.16
포인터  (0) 2023.02.16