다음은 포인터로 전달하고 참조로 전달하는 간단한 예입니다. -
포인터로 전달
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
int c = *a;
*a= *b;
*b = c;
}
int main() {
int m = 7, n = 6;
cout << "Before Swap\n";
cout << "m = " << m << " n = " << n << "\n";
swap(&m, &n);
cout << "After Swap by pass by pointer\n";
cout << "m = " << m << " n = " << n << "\n";
} 출력
Before Swap m = 7 n = 6 After Swap by pass by pointer m = 6 n = 7
참조로 전달
#include <iostream>
using namespace std;
void swap(int& a, int& b) {
int c = a;
a= b;
b = c;
}
int main() {
int m =7, n = 6;
cout << "Before Swap\n";
cout << "m = " << m << " n = " << n << "\n";
swap(m, n);
cout << "After Swap by pass by reference\n";
cout << "m = " << m << " n = " << n << "\n";
} 출력
Before Swap m = 7 n = 6 After Swap by pass by reference m = 6 n = 7
따라서 포인터로 전달하거나 참조로 전달하여 함수에 매개변수를 전달하면 동일한 결과가 생성됩니다. 차이점은 참조는 다른 이름의 기존 변수를 참조하는 데 사용되는 반면 포인터는 변수의 주소를 저장하는 데 사용된다는 것입니다. NULL이 될 수 없으므로 참조를 사용하는 것이 안전합니다.