1 #include <iostream> 2 3 // by reference 4 void numbers_swap_r(int &a, int &b) { 5 a += b; 6 b = a - b; 7 a -= b; 8 } 9 10 11 // by pointers 12 void numbers_swap_p(int *a, int *b) { 13 *a += *b; 14 *b = *a - *b; 15 *a -= *b; 16 } 17 18 void numbers_print(int a, int b) { 19 std::cout << "a: " << a << std::endl; 20 std::cout << "b: " << b << std::endl; 21 } 22 23 int main (void) { 24 int a, b; 25 26 a = 1; 27 b = 2; 28 29 numbers_print(a, b); 30 std::cout << "// Swap by reference" << std::endl; 31 numbers_swap_r(a, b); 32 numbers_print(a, b); 33 34 std::cout << "// Swap by pointer" << std::endl; 35 numbers_swap_p(&a, &b); 36 numbers_print(a, b); 37 38 return 0; 39 }
