void swap(int *a,int *b) //定義函數
{
int t; //輸入一個整型t
t=*a;
*a=*b;
*b=t; //交換 *a,*b
}
int main() //主函數
{
int m,n; //輸入整型 m n
int *p1,*p2;// 輸入兩個指針變量
scanf("%d %d",&m,&n); //輸入兩個值
p1=&m; //把m的地址給p1
p2=&n; //把n的地址給p2
swap(p1,p2);//調用函數
printf("m=%d n=%d",m,n);//輸出
return 0;//返回值0
}
10 20
m=20 n=10
--------------------------------
Process exited after 5.124 seconds with return value 0
請按任意鍵繼續. . .
總結: 每次寫程序時都沒有清晰的思路,只有慢慢寫草稿,一次次的編譯,有時候寫到最后編譯成功,不知道代碼的意思。對指針還不熟悉。
二:*m是指針變量,m無確定的值,不可見,會破環正常工作。
三:實參和形參都是單向值傳遞的,用指針可以得到多個變化值。
int max(int *a,int *b)//定義max函數
{
if(*a>*b) //比較大小
return(*a); //返回較大值
else
return(*b);
}
int main()
{
int m,n,t;
int *p1,*p2;
scanf("%d %d",&m,&n);
p1=&m;
p2=&n;
t=max(p1,p2); //調用函數,把最大值賦值給t
printf("%d\n",t);//輸出t
}
100 200
200
--------------------------------
Process exited after 7.521 seconds with return value 4
請按任意鍵繼續. . .
總結:寫此程序時在scanf后面忘寫了&,說明程序是敲出來的。