摘自C程序設計(第三版),譚浩強數組
若是有一個實參數組,要想在函數中改變此數組中的元素的值,實參和形參的對應關係有4種狀況。ide
1.形參和實參都用數組名函數
1 void main() 2 { 3 int a[10]; 4 ... 5 f(a,10) 6 } 7 8 void f(int x[],int n) 9 { 10 ... 11 } 12 13 //因爲形參數組名接收了實參數組首元素的地址,所以能夠認爲在函數調用期間,形參數組與實//參數組共用一段內存單元,這種形式比較好理解
2.實參用數組名,形參用指針變量spa
1 void main() 2 { 3 int a[10]; 4 ... 5 f(a,10) 6 } 7 8 void f(int *x,int n) 9 { 10 ... 11 } 12 13 //實參a爲數組名,形參x指向整型變量的指針變量,函數開始執行時,x指向a[0],x=&a[0],//經過x值的改變,能夠指向a數組的任一元素。
3.實參形參都用指針變量設計
1 void main() 2 { 3 int a[10]; 4 int *p = a; 5 ... 6 f(p,10) 7 } 8 9 void f(int *x,int n) 10 { 11 ... 12 }
4.實參爲指針變量,形參爲數組名指針
1 void main() 2 { 3 int a[10]; 4 int *p = a; 5 ... 6 f(p,10) 7 } 8 9 void f(int x[],int n) 10 { 11 ... 12 } 13 14 //形參x爲數組名,編譯系統把x做爲指針變量處理