可能重复:
使用指针交换对象
我知道如何使用指针进行交换,但是,如果我尝试这样的不同方法:
/* 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'的地址,反之亦然。如果我打印出交换函数中的值,它会给出交换的值,但它不会反映在 main功能。谁能告诉我为什么?