數組作爲函數參數時的幾種狀況

摘自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 //因爲形參數組名接收了實參數組首元素的地址,所以能夠認爲在函數調用期間,形參數組與實//參數組共用一段內存單元,這種形式比較好理解
View Code

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數組的任一元素。
View Code

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 }
View Code

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做爲指針變量處理
View Code
相關文章
相關標籤/搜索