C++

Swap

khon98 2021. 1. 22. 13:15
#include <iostream>

using namespace std;

void swap(int*, int*);
void swap(char*, char*);
void swap(double*, double*);

int main(int argc, const char * argv[]) {
    int i = 123, j = 456;
    char a = 'A', b = 'B';
    double x = 123.45, y = 678.90;
    
    cout << " swap 이전 \n";
    cout << " i = " << i << ", j = " << j << endl;
    cout << " a = " << a << ", b = " << b << endl;
    cout << " x = " << x << ", y = " << y << '\n' << endl;
    
    swap(&i, &j);
    swap(&a, &b);
    swap(&x, &y);
    
    cout << " swap 이후 \n";
    cout << " i = " << i << ", j = " << j << endl;
    cout << " a = " << a << ", b = " << b << endl;
    cout << " x = " << x << ", y = " << y << endl;
    
    return 0;
}

void swap(int *a, int *b) {
    int t = *a;
    *a = *b;
    *b = t;
}

void swap(char *a, char *b) {
    char t = *a;
    *a = *b;
    *b = t;
}

void swap(double *a, double *b) {
    double t = *a;
    *a = *b;
    *b = t;
}

 

실행 결과

 swap 이전 

 i = 123, j = 456

 a = A, b = B

 x = 123.45, y = 678.9

 

 swap 이후 

 i = 456, j = 123

 a = B, b = A

 x = 678.9, y = 123.45