I have a bunch of code like this:
#include <iostream>
using namespace std;
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a;
int b;
a = 7;
b = 5;
swap(a, b);
cout << a << b;
return 0;
}
This code does the swapping process as what I exactly wanted to swap 2 numbers, but when I want two numbers from the user as follows;
int a;
int b;
cin >> a;
cin >> b;
swap(a, b);
cout << a << b;
the compiler gives me an error about int
to int*
error which is as expected. Why does the first code do the right swapping although I didn't use the method with &
operator?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…