기타/기타의 기타
c++ 포인터와 referense를 이용한 두 변수 값 바꾸기
팥들었슈_
2023. 12. 26. 14:35
// Online C++ compiler to run C++ program online
#include <iostream>
using namespace std;
template <typename T>
void pointerSwitch(T* a, T* b){
// a의 주소 b의 주소를 받음음
T tmp = *a; // 입력 받은 인수가 주소이기 때문에 값으로 변환
*a = *b;
*b = tmp;
}
template <typename T>
void referenceSwitch(T& a, T& b) {
T tmp = a;
a = b;
b = tmp;
}
int main() {
int a = 10;
int b = 20;
cout << *&a;
cout << "a는" << a << "\n";
cout << "b는" << b << "\n";
cout << "pointer switch \n" ;
pointerSwitch(&a, &b);
cout << "a는" << a << "\n";
cout << "b는" << b << "\n";
cout << "reference switch \n" ;
referenceSwitch(a, b);
cout << "a는" << a << "\n";
cout << "b는" << b << "\n";
return 0;
}
10a는10
b는20
pointer switch
a는20
b는10
reference switch
a는10
b는20