數(shù)組函數(shù)的使用方法C語(yǔ)言 在c 語(yǔ)言中,為啥形式參數(shù)中定義的數(shù)組可以沒(méi)有長(zhǎng)度?
在c 語(yǔ)言中,為啥形式參數(shù)中定義的數(shù)組可以沒(méi)有長(zhǎng)度?因?yàn)楫?dāng)函數(shù)參數(shù)是數(shù)組時(shí),它只以數(shù)組的形式出現(xiàn)。實(shí)際上,參數(shù)將根據(jù)指針傳遞。1. 在C/C中,數(shù)組可以用作參數(shù)。例如,void func(int n
在c 語(yǔ)言中,為啥形式參數(shù)中定義的數(shù)組可以沒(méi)有長(zhǎng)度?
因?yàn)楫?dāng)函數(shù)參數(shù)是數(shù)組時(shí),它只以數(shù)組的形式出現(xiàn)。實(shí)際上,參數(shù)將根據(jù)指針傳遞。
1. 在C/C中,數(shù)組可以用作參數(shù)。例如,
void func(int n[10])]有時(shí)會(huì)被寫(xiě)入
void func(int n[
]無(wú)論哪種方式,實(shí)際上都是編譯后定義
void func(int*n)。
2. 將數(shù)組轉(zhuǎn)換為指針可以提高效率并減少實(shí)際傳遞的值的數(shù)量。例如,如果transfer參數(shù)是int a[100],則sizeof(int)*100字節(jié)的值需要傳輸?shù)綄?shí)際數(shù)組。如果傳輸指針,只需要傳輸sizeof(int*)數(shù)據(jù),這樣可以大大提高效率。
3. 要傳遞指針,可以將函數(shù)中的更改返回給main函數(shù)。
總之,如果要將其轉(zhuǎn)換為指針,可以使用int*n,int n[,int n[100],這沒(méi)有區(qū)別。當(dāng)然,這是合法的。
c語(yǔ)言函數(shù)的形參為指針變量時(shí),對(duì)應(yīng)的實(shí)參可以是數(shù)組名。怎么理解呀?
例如:void f(int*P){}intarr[]={1,2,3}因?yàn)楹瘮?shù)f的形式參數(shù)是int類型的指針變量,調(diào)用f時(shí),數(shù)組名arr可以作為實(shí)際參數(shù)傳遞給形式參數(shù)P。也就是說(shuō),您可以調(diào)用:F(ARR)