在主函數(shù)里面,sizeof是數(shù)組占的空間 在作為參數(shù)時(shí),會(huì)被轉(zhuǎn)為指針 所以在函數(shù)里面打印的是sizeof(char*)對(duì)于任意指針,sizeof的值都是當(dāng)前編譯器位數(shù)。

創(chuàng)新互聯(lián)專注于平陸網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供平陸營銷型網(wǎng)站建設(shè),平陸網(wǎng)站制作、平陸網(wǎng)頁設(shè)計(jì)、平陸網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造平陸網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供平陸網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
既然只傳一行,干嘛要用(*)[]型形參?用char *p或char p[]不就足夠了?另外,50x1000000的數(shù)組大了點(diǎn),聲明全局?jǐn)?shù)組吧,局部數(shù)組不支持。
傳數(shù)組不能傳數(shù)組名,得傳首地址。char huiwen(char str[], int n)改為char huiwen(char &str, int n)其實(shí)你可以輸入字符串而不是字符數(shù)組,那樣會(huì)更好處理。
不可能達(dá)到目的。因?yàn)镃語言中沒有引用這類型,C++才有。另,C/C++都不支持傳遞數(shù)組,只能傳遞數(shù)組的首元素或行指針,所以即使是C++,也只能傳遞數(shù)組指針的引用,而不可能傳遞數(shù)組的引用,因?yàn)閿?shù)組沒有引用。
在C語言中,字符串是以字符數(shù)組方式保存的,于是字符串?dāng)?shù)組可以用二維字符數(shù)組存儲(chǔ)。輸入時(shí),每次輸入字符串?dāng)?shù)組的一個(gè)元素(一行),根據(jù)需要,使用scanf或gets進(jìn)行輸入。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因?yàn)閿?shù)組名代表這個(gè)數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時(shí),就是找到這個(gè)數(shù)組第i號(hào)元素的地址進(jìn)行修改的。所以是第于是地址傳遞。
在C語言中可以用二維數(shù)組作為實(shí)參或者形參。
數(shù)組作為參數(shù)是按地址傳遞的 數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時(shí)所進(jìn)行的傳送只是地址的傳送, 也就是說把實(shí)參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實(shí)在的數(shù)組。
void func(int array[10])void func(int array[])void func(int *array)所以以上三種函數(shù)聲明完全等同。實(shí)際情況是,數(shù)組做參數(shù),完全無法按值傳遞。這是由C/C++函數(shù)的實(shí)現(xiàn)機(jī)制決定的。
因?yàn)閿?shù)組在內(nèi)存中是一塊連續(xù)的內(nèi)存,只要將該數(shù)組的首地址傳進(jìn)去,當(dāng)然就可以訪問整個(gè)數(shù)組了。值得注意的是,由于只傳了首地址,函數(shù)不知道數(shù)組的維數(shù),所以還得把數(shù)組的維數(shù)傳進(jìn)去,那就可以完全操作該數(shù)組了。
數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組 修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。
C語言中,數(shù)組名作為函數(shù)參數(shù),屬于數(shù)組參數(shù)傳遞。在VB0中,允許使用數(shù)組作為實(shí)參傳遞到子過程的形參中,數(shù)組傳遞必須采用地址傳遞的方式來傳遞參數(shù)。
傳數(shù)組給一個(gè)函數(shù),數(shù)組類型自動(dòng)轉(zhuǎn)換為指針類型,因而傳的實(shí)際是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三種函數(shù)聲明完全等同。實(shí)際情況是,數(shù)組做參數(shù),完全無法按值傳遞。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因?yàn)閿?shù)組名代表這個(gè)數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時(shí),就是找到這個(gè)數(shù)組第i號(hào)元素的地址進(jìn)行修改的。所以是第于是地址傳遞。
在C語言中可以用二維數(shù)組作為實(shí)參或者形參。
當(dāng)前題目:c語言數(shù)組傳入函數(shù) c語言如何將數(shù)組傳入函數(shù)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article40/desiieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、商城網(wǎng)站、網(wǎng)站排名、微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)