#include <stdio.h>
int a1=300,a2=400;
void sub1(int x,int y)
{ a1=x;
x=y;
y=a1;
}
int main( )
{
int a3=100,a4=200;
sub1(a3,a4);
sub1(a1,a2);
printf("%d,%d,%d,%d\n",a1,a2,a3,a4);
return 0;
}
uj5u.com熱心網友回復:
sub1這個函式是打算做交換的吧。建議用swap作為函式名。或swap_int。實際的結果是都不能做交換,原因是引數是值傳遞,實參a3, a4與sub1中的x, y是相互獨立的,sub1函式里交換了x, y的值,但是這兩個值是函式內部的變數,函式呼叫結束會自動釋放,因此不會影響a3, a4的值,同理也是a1, a2
uj5u.com熱心網友回復:
要實作交換,值傳遞是不行的,正如樓上所說。傳地址才能實作。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111592.html
標籤:C語言
上一篇:類
下一篇:fprintf報錯
