#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
}