// 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

'기타 > 기타의 기타' 카테고리의 다른 글

Spring Integration 컴포넌트 간단정리  (0) 2024.03.25
자격증 정리  (0) 2023.12.28
JVM Runtime Data Area  (1) 2023.12.23

+ Recent posts