數(shù)組在做形參時(shí),自動(dòng)退化為指針,即使void func(int a[]);合法,也是為了照顧習(xí)慣,實(shí)質(zhì)還只是傳址。解決方法:由調(diào)用者傳入。
創(chuàng)新互聯(lián)專(zhuān)注于黑龍江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供黑龍江營(yíng)銷(xiāo)型網(wǎng)站建設(shè),黑龍江網(wǎng)站制作、黑龍江網(wǎng)頁(yè)設(shè)計(jì)、黑龍江網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造黑龍江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供黑龍江網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
用 sizeof 可以獲得數(shù)據(jù)類(lèi)型或變量在內(nèi)存中所占的字節(jié)數(shù)。同樣,用 sizeof 也可以獲得整個(gè)數(shù)組在內(nèi)存中所占的字節(jié)數(shù)。因?yàn)閿?shù)組中每個(gè)元素的類(lèi)型都是一樣的,在內(nèi)存中所占的字節(jié)數(shù)都是相同的,所以總的字節(jié)數(shù)除以一個(gè)元素所占的字節(jié)數(shù)就是數(shù)組的長(zhǎng)度。
比較特別的是,比特右移()運(yùn)算符可以是算術(shù)(左端補(bǔ)最高有效位)或是邏輯(左端補(bǔ)0)位移。例如,將11100011右移3比特,算術(shù)右移后成為11111100,邏輯右移則為00011100。
運(yùn)算符的優(yōu)先級(jí)從高到低大致是:?jiǎn)文窟\(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符(=)和逗號(hào)運(yùn)算符。
C語(yǔ)言特點(diǎn):
其一,廣泛性。C語(yǔ)言的運(yùn)算范圍的大小直接決定了其優(yōu)劣性。C語(yǔ)言中包含了34種運(yùn)算符,因此運(yùn)算范圍要超出許多其它語(yǔ)言,此外其運(yùn)算結(jié)果的表達(dá)形式也十分豐富。
其二,簡(jiǎn)潔性。9類(lèi)控制語(yǔ)句和32個(gè)關(guān)鍵字是C語(yǔ)言所具有的基礎(chǔ)特性,使得其在計(jì)算機(jī)應(yīng)用程序編寫(xiě)中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時(shí)還能夠支持高級(jí)編程,避免了語(yǔ)言切換的繁瑣。
c語(yǔ)言中,定義數(shù)組后可以用sizeof命令獲得數(shù)組的長(zhǎng)度(可容納元素個(gè)數(shù))
如:
{
int?data[4];
int?length;
length=sizeof(data)/sizeof(data[0]);??//數(shù)組占內(nèi)存總空間,除以單個(gè)元素占內(nèi)存空間大小
printf("length?of?data[4]=%d",?length?);?//輸出length?of?data[4]=4
}
但,通過(guò)傳遞數(shù)組名參數(shù)到子函數(shù)中,以獲得數(shù)組長(zhǎng)度是不可行的。如:
int?getLength(int[]?a){
int?length;
length=sizeof(a)/sizeof(a[0]);?//這樣是錯(cuò)誤的,得到的結(jié)果永遠(yuǎn)是1
return?length;
}
因?yàn)椋琣是函數(shù)參數(shù),到了本函數(shù)中,a只是一個(gè)指針(地址,系統(tǒng)在本函數(shù)運(yùn)行時(shí),是不知道a所表示的地址有多大的數(shù)據(jù)存儲(chǔ)空間,這里只是告訴函數(shù):一個(gè)數(shù)據(jù)存儲(chǔ)空間首地址),所以,sizoef(a)的結(jié)果是指針變量a占內(nèi)存的大小,一般在32位機(jī)上是4個(gè)字節(jié)。a[0]是int類(lèi)型,sizeof(a[0])也是4個(gè)字節(jié),所以,結(jié)果永遠(yuǎn)是1。
因此,獲得數(shù)組長(zhǎng)度,只能在數(shù)組定義所在的代碼區(qū)中,采用以上方法,才可以達(dá)到效果。
拓展資料:
數(shù)組特點(diǎn):
數(shù)組是相同數(shù)據(jù)類(lèi)型的元素的集合。
數(shù)組中的各元素的存儲(chǔ)是有先后順序的,它們?cè)趦?nèi)存中按照這個(gè)先后順序連續(xù)存放在一起。
數(shù)組元素用整個(gè)數(shù)組的名字和它自己在數(shù)組中的順序位置來(lái)表示。例如,a[0]表示名字為a的數(shù)組中的第一個(gè)元素,a[1]代表數(shù)組a的第二個(gè)元素,以此類(lèi)推。
對(duì)于VB的數(shù)組,表示數(shù)組元素時(shí)應(yīng)注意:
下標(biāo)要緊跟在數(shù)組名后,而且用圓括號(hào)括起來(lái)(不能用其他括號(hào))。
下標(biāo)可以是常量,變量,或表達(dá)式,但其值必須是整數(shù)(如果是小數(shù)將四舍五入為整數(shù))。
下標(biāo)必須為一段連續(xù)的整數(shù),其最小值成為下界,其最大值成為上界。不加說(shuō)明時(shí)下界值默認(rèn)為1。
你在函數(shù)里面sizeof,其實(shí)那只是一個(gè)指針,指針sizeof就是4,所以肯定不對(duì)。如果你要在函數(shù)里面得到數(shù)組的長(zhǎng)度,最好以另一個(gè)參數(shù)的形式傳遞進(jìn)去
本文名稱(chēng):c語(yǔ)言函數(shù)求形參數(shù)組長(zhǎng)度 c語(yǔ)言行參數(shù)
URL鏈接:http://jinyejixie.com/article48/dosdjhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、全網(wǎng)營(yíng)銷(xiāo)推廣、靜態(tài)網(wǎng)站、域名注冊(cè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)