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 |