Ⅰ c語言fun函數的功能是交換形參的值,不能交換實參的值,都是按值傳遞為什麼不能改變實參的值
voidfun(int*a,int*b)
{
int*c;
c=a;a=b;b=c;
}
因為函數中,形參a,b中保存的都是實參的地址值,c=a;a=b;b=c;這行代碼,只是把形參a,b的地址值進行了互換,對調用函數的實參所保存的結果是沒有任何影響的。如果換成如下代碼:
voidfun(int*a,int*b)
{
intc;
c=*a;*a=*b;*b=c;
}
互換的是指針所指空間的值,即互換了調用函數的實參所保存的數值