分类：电脑/网络-软件
问题：C语言函数交换这题要怎么理解？在什么情况下交换函数会不能执行？？ 
这题要怎么理解？在什么情况下交换会不能执行？？#include<stdio.h>void main (){int a=-1,b=1;void f1(int x,int y),f2(int *x,in*y);void f3(int *x,int *y),f4(int x,int y);f1(a,b);printf("(%d,%d)\n",a,b);a=-1 ,b=1;f2(&a,&b);printf("(%d,%d)\n",a,b);f3(&a,&b);printf("(%d,%d)\n",a,这题要怎么理解？在什么情况下交换会不能执行？？#include<stdio.h>void main (){int a=-1,b=1;void f1(int x,int y),f2(int *x,in*y);void f3(int *x,int *y),f4(int x,int y);f1(a,b);printf("(%d,%d)\n",a,b);a=-1 ,b=1;f2(&a,&b);printf("(%d,%d)\n",a,b);f3(&a,&b);printf("(%d,%d)\n",a,b);f4(a,b);printf("(%d,%d)\n",a,b);void f1(int x,int y){int t;t=x;x=y;y=t;}void f2(int *x, int *y){int t;t=*x;*x=*y;*y=t;}void f3(int *x, int *y){int *t;t=x;x=y;y=t;}void f4(int x,int y){int *t=malloc(sizeof(t));*t=x;x=y;y=*t;} 
回答：f1 和f4都不行
C的参数是传值，f1(a,b) 会把实参的值复制给a和b，实参的值不会改变。
除非用实参的指针，指针中的内容改变了，实参原来的值就改变了。