我知道该怎么做使用指针交换,但是呢,如果我尝试这样一种不同的方法:
/* 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
没有接受的答案! –