인자 전달 방식은 값에 의한 호출과 주소에 의한 호출로 나뉜다.

--값에 의한 호출--
#include<iostream>
using namespace std;
void swap(int a,int b){
int tmp;
tmp=a;
a=b;
b=tmp;
}
int main(){
int m=2, n=9;
swap(m,n);
cout<<m<<' '<<n;
}
--주소에 의한 호출--
#include<iostream>
using namespace std;
void swap(int *a,int *b){
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
int main(){
int m=2, n=9;
swap(&m,&n);
cout<<m<<' '<<n;
}
값에 의한 호출 : 실인자의 값을 복사하여 전달하므로, 함수 내에서 실인자를 손상시킬 수 없는 장점이 있다. 따라서 함수 호출에 따른 부작용은 없다.
주소에 의한 호출 : 실인자의 주소를 넘겨주어 의도적으로 함수 내에서 실인자의 값을 변경하고자 할 때 이용된다.
C++에서는 참조에 의한 호출도 추가되었는데, 후에 다룬다.
'Programming Language > C++' 카테고리의 다른 글
| 객체 치환 및 객체 리턴 (0) | 2023.04.08 |
|---|---|
| 함수 호출 시 객체 전달 (0) | 2023.04.08 |
| 문자열 다루기 (0) | 2023.04.07 |
| string 클래스 개요 (0) | 2023.04.07 |
| this의 기본 개념 (0) | 2023.04.07 |