void swap(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
x
and
y
, but they
are only local copies of the numbers.
If we call
swap()
with a command like:
swap(a[i], a[j]);
a[i]
and
a[j]
won't be changed.
However, we can write
swap()
using pointers.
Consider the function:
void swap(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
x
and
y
.
They are pointers to the actual numbers we want to swap, so we swap
the integers that they point to.
That also means that we call it differently; we would call
swap()
with a statement like:
swap(&a[i], &a[j]);
swap()
,
and this figure shows the situation at the end of
swap()
.