#include <stdio.h>

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

int main() {
    int a, b;
    scanf("a=%d,b=%d", &a, &b);
    swap(&a, &b);
    printf("a=%d,b=%d", a, b);
}

传递的地址,值会改变,若传值,单项值传递,值是不会交换的

真的裂开,运行好几遍居然是因为又没注意格式人都傻了!!!!

例如:

输入a=1,b=2;

#include <stdio.h>

void swap(int x, int y) {

    int t = x;

    x = y;

    y = t;

}

int main() {

    int a, b;

    scanf("a=%d,b=%d", &a, &b);

    swap(a, b); //传值的话这里不变

    printf("a=%d,b=%d", a, b); //答案依旧是a=1,b=2

}