我知道該怎麼做使用指針交換,但是呢,如果我嘗試這樣一種不同的方法:
/* Pointers */
#include <stdio.h>
int main()
{
int a=4,b=6;
swap(&a,&b);
printf("A is %d, and B is %d\n",a,b);
return 0;
}
int swap(int *a, int *b)
{
int *temp;
temp = a;
a = b;
b = temp;
return 0;
}
它不起作用。基本上交換功能正在改變地址,如'a'現在有'b'的地址,反之亦然。如果我打印出交換功能的值,它給出交換值,但它不反映在主功能。任何人都可以告訴我爲什麼?
它是C還是C++?我會推薦兩種不同的東西。 – chris
[爲什麼這些交換函數的行爲不同?](http://stackoverflow.com/questions/4330929/why-do-these-swap-functions-behave-differently) – DCoder
沒有接受的答案! –