728x90
[Do it C++ 완전정복_ 147p]
함수의 인자 전달 방식 (3가지)
함수를 호출할 때 인자를 전달하는 방식
1. 값에 의한 호출 (Call by Value)
- 인자의 복사본이 함수로 전달됩니다.
- 함수 안에서 값을 바꿔도 원본에는 영향이 없습니다.
void swapValue(int a, int b) {
int temp = a;
a = b;
b = temp;
}
2. 참조에 의한 호출 (Call by Reference)
- 인자의 원본을 직접 참조하여 전달합니다.
- 함수 안에서 변경하면 원본도 함께 변경됩니다.
- C++에서 레퍼런스(&) 로 구현합니다.
void swapRef(int& a, int& b) { // 참조로 전달
int temp = a;
a = b;
b = temp;
}
int main() {
int x = 10, y = 20;
swapRef(x, y); // 원본 교환
cout << "x=" << x << ", y=" << y << endl; // x=20, y=10
}
3. 주소에 의한 호출 (Call by Address)
- 인자의 주소(포인터) 를 함수에 전달합니다.
- 함수 내에서 역참조(*) 를 통해 원본 데이터를 변경할 수 있습니다.
void swapPtr(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}'C++ > C++ 문법' 카테고리의 다른 글
| C++ 조건문 (if, switch) (0) | 2025.10.13 |
|---|---|
| C++ 레퍼런스 변수 (참조 변수) (0) | 2025.10.13 |
| C++ 구조체 (struct) (1) | 2025.10.13 |
| C/C++ 메모리 구조 (0) | 2025.10.13 |
| C++ 동적 메모리 할당/해제 (new, delete) (0) | 2025.10.13 |