數(shù)組用作函數(shù)參數(shù)有兩種形式:
一種是把數(shù)組元素(下標(biāo)變量)作為實(shí)參使用;
一種是把數(shù)組名作為函數(shù)的形參和實(shí)參使用。
1、數(shù)組元素(下標(biāo)變量)作為實(shí)參使用
數(shù)組元素作為函數(shù)實(shí)參使用與普通變量是完全相同的,在發(fā)生函數(shù)調(diào)用時(shí)溜族,把作為實(shí)參的數(shù)組元素的值傳給形參讹俊,只是“拷貝”實(shí)參中的變量的值,傳送給形參煌抒,實(shí)現(xiàn)單向的值傳送
2、數(shù)組名作為函數(shù)參數(shù)
用數(shù)組名作為函數(shù)參數(shù)與用數(shù)組元素作實(shí)參有幾點(diǎn)不同:
1)用數(shù)組元素作函數(shù)參數(shù)不要求形參也必須是數(shù)組摧玫,但是用數(shù)組名作函數(shù)參數(shù)時(shí)绑青,則要求形參和相對(duì)應(yīng)的實(shí)參都是類型相同的數(shù)組诬像。
2)在 C 語(yǔ)言中,數(shù)組名除作為變量的標(biāo)識(shí)符之外闸婴,數(shù)組名還代表了該數(shù)組在內(nèi)存中的起始地址坏挠,當(dāng)數(shù)組名作函數(shù)參數(shù)時(shí),實(shí)參與形參之間不是“值傳遞”邪乍,而是“地址傳遞”对竣,實(shí)參數(shù)組名將該數(shù)組的其實(shí)地址傳給形參數(shù)組,兩個(gè)數(shù)組共享一段內(nèi)存單元否纬,編譯系統(tǒng)不再為形參數(shù)組分配存儲(chǔ)單元。
3)在變量做函數(shù)參數(shù)時(shí)临燃,所進(jìn)行的值傳遞是單向的。即只能從實(shí)參傳向形參膜廊,不能從形參傳回實(shí)參。
3爪瓜、數(shù)組名作為函數(shù)參數(shù)注意事項(xiàng)
1)形參數(shù)組和實(shí)參數(shù)組類型必須一致,否則出錯(cuò)匙瘪。
2)在函數(shù)形參表中,允許不給出形參數(shù)組的長(zhǎng)度辆苔,或用一個(gè)變量來(lái)表示數(shù)組元素的個(gè)數(shù)。
void xzh(int a[])
或?qū)憺椋?/p>
void xzh(int a[],int n)
n 的值由主調(diào)函數(shù)的實(shí)參進(jìn)行傳遞驻啤。
所有的地址都占8個(gè)字節(jié)。
3)形參數(shù)組和實(shí)參數(shù)組長(zhǎng)度可以不相同赊瞬,因?yàn)樵谡{(diào)用時(shí),只傳遞首地址而不檢查形參數(shù)組的長(zhǎng)度巧涧。