简单的交换功能......为什么不交换这个?

Ada*_*fer 11 c pointers

我是C的新手,仍然试图掌握指针的概念.我知道如何编写一个有效的交换函数...我更关心的是为什么这个特殊的函数没有.

void swap(int* a, int* b)
{
 int* temp = a;
 a = b;
 b = temp;
}

int main()
{
 int x = 5, y = 10;
 int *a = &x, *b = &y;
 swap(a, b);
 printf(“%d %d\n”), *a, *b);
}
Run Code Online (Sandbox Code Playgroud)

zil*_*n01 30

*在交换功能中缺少s.尝试:

void swap(int* a, int* b)
{
 int temp = *a;
 *a = *b;
 *b = temp;
}
Run Code Online (Sandbox Code Playgroud)

这样一来,而不只是交换了指针,你调换int的指针指向小号.


caf*_*caf 12

你的swap()函数在时尚之后起作用 - 它会交换变量的值ab本地变量的值swap().不幸的是,这些都是从不同abmain()-这样你就不会真正看到他们交换任何影响.