这么说吧,这和变量的作用域有关
在main函数里面a,b的值只会在main函数中有效
而调用了huhuan函数之后只是将main函数中的a,b的值临时传递到了huhuan中
在huhuan中的a,b是区别于main函数的a,b的
所以虽然在huhuan中a,b是完成交换了,但main函数中的a,b并没有互换
所以这就是为什么输出的a还是3,b还是5的原因
如果要完成mian函数的a,b互换,要做出如下改动:
程序代码:
void huhuan(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
return;
}
int main()
{
int a=3;
int b=5;
huhuan(&a,&b);
printf("a = %d,b = %d\n",a,b);
}
然后你可以尝试在原来的huhuan函数中加入:
printf("a = %d,b = %d\n",a,b);
你应该会发现些有趣的东西