數組可以作為函數的參數使用,進行數據傳送。數組用作函數參數有兩種形式,一種是把數組元素(下標變量)作為實參使用;另一種是把數組名作為函數的形參和實參使用。
1. 數組元素作函數實參
數組元素就是下標變量,它與普通變量并無區別。 因此它作為函數實參使用與普通變量是完全相同的,在發生函數調用時,把作為實參的數組元素的值傳送給形參,實現單向的值傳送。
2. 數組名作為函數參數
用數組名作函數參數與用數組元素作實參有幾點不同:
1) 用數組元素作實參時,只要數組類型和函數的形參變量的類型一致,那么作為下標變量的數組元素的類型也和函數形參變量的類型是一致的。因此,并不要求函數的形參也是下標變量。換句話說,對數組元素的處理是按普通變量對待的。用數組名作函數參數時,則要求形參和相對應的實參都必須是類型相同的數組,都必須有明確的數組說明。當形參和實參二者不一致時,即會發生錯誤。
2) 在普通變量或下標變量作函數參數時,形參變量和實參變量是由編譯系統分配的兩個不同的內存單元。在函數調用時發生的值傳送是把實參變量的值賦予形參變量。在用數組名作函數參數時,不是進行值的傳送,即不是把實參數組的每一個元素的值都賦予形參數組的各個元素。因為實際上形參數組并不存在,編譯系統不為形參數組分配內存。那么,數據的傳送是如何實現的呢?在我們曾介紹過,數組名就是數組的首地址。因此在數組名作函數參數時所進行的傳送只是地址的傳送,也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址之后,也就等于有了實在的數組。
實際上是形參數組和實參數組為同一數組,共同擁有一段內存空間。