| 特性 | 數組元素作參數 | 數組名作參數 |
|---|---|---|
| 類型要求 | 元素類型與形參一致即可 | 實參形參必須同類型數組 |
| 內存分配 | 形參實參各自分配,值傳遞 | 形參不分配內存,傳遞首地址 |
| 數據傳遞 | 單向:實參→形參,形參修改不影響實參 | 共享內存:形參修改實參同步變化 |
數組名即首地址。調用時將實參數組首地址賦給形參數組名,二者共享同一內存區。
float aver(float a[5]) { ... }
float sco[5]; aver(sco); // sco 首地址傳給 a,a 與 sco 共用內存
void nzp(int a[5]) {
for(int i=0;i<5;i++) if(a[i]<0) a[i]=0;
}
int main() {
int b[5] = {1,-2,3,-4,5};
nzp(b); // b 內容被修改
// 輸出: 1 0 3 0 5
}
void nzp(int a[]) 或 void nzp(int a[], int n) 動態指定長度int MA(int a[][10])void nzp(int a[], int n) {
for(int i=0;i
數組名作參數實質是地址傳遞,實現了函數間共享數組內存。利用此特性可高效處理大數據,但需注意長度匹配與越界風險。多維數組僅需指定除第一維外的所有維度。