#include<stdio.h>

int swap(int x,int y);

int main()
{
    int a=1;
    int b=2;
    swap(a,b);
    printf("a=%d,b=%d",a,b);
    return 0;
}

int swap(int x,int y)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}

程序本意是交换调换 a 和 b 的值,但是没注意到内存空间的不可调用原则,所以程序应该修改:

#include<stdio.h>

int swap(int *x,int *y);

int main()
{
    int a=1;
    int b=2;
    swap(&a,&b);
    printf("a=%d\nb=%d\n",a,b);
    return 0;
}

int swap(int *x,int *y)
{
    int temp;
    temp=*x;
    *x=*y;
    *y=temp;
}