本篇文章給大家分享的是有關(guān)在C語(yǔ)言中獲取數(shù)組長(zhǎng)度的方法有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)礦區(qū),十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220使用關(guān)鍵字 sizeof。
前面說(shuō)過(guò),用 sizeof 可以獲得數(shù)據(jù)類型或變量在內(nèi)存中所占的字節(jié)數(shù)。同樣,用 sizeof 也可以獲得整個(gè)數(shù)組在內(nèi)存中所占的字節(jié)數(shù)。因?yàn)閿?shù)組中每個(gè)元素的類型都是一樣的,在內(nèi)存中所占的字節(jié)數(shù)都是相同的,所以總的字節(jié)數(shù)除以一個(gè)元素所占的字節(jié)數(shù)就是數(shù)組的長(zhǎng)度。
那么如何用 sizeof 獲得數(shù)組總的字節(jié)數(shù)呢?只要對(duì)數(shù)組名使用 sizeof,求出的就是該數(shù)組總的字節(jié)數(shù)。下面寫一個(gè)程序看一下:
# include <stdio.h> int main(void) { int a[10] = {0}; printf("sizeof(a) = %d\n", sizeof(a)); return 0; }
輸出結(jié)果是:
sizeof(a) = 40
數(shù)組 a 是 int 型的,每個(gè)元素占 4 字節(jié),所以長(zhǎng)度為 10 的數(shù)組在內(nèi)存中所占的字節(jié)數(shù)就是 40。而總的字節(jié)數(shù)除以一個(gè)元素所占的字節(jié)數(shù)就是數(shù)組的長(zhǎng)度,如下面這個(gè)程序:
# include <stdio.h> int main(void) { int a[10] = {0}; int cnt = sizeof(a) / sizeof(a[0]); printf("cnt = %d\n", cnt); return 0; }
輸出結(jié)果是:
cnt = 10
這樣不管數(shù)組是增加還是減少元素,sizeof(a)/sizeof(a[0]) 都能自動(dòng)求出數(shù)組的長(zhǎng)度。需要注意的是,它求出的是數(shù)組的總長(zhǎng)度,而不是數(shù)組中存放的有意義的數(shù)據(jù)的個(gè)數(shù)。比如定義一個(gè)int型的數(shù)組:
int a[10] = {1, 2, 3, 4, 5};
我們只初始化了五個(gè)元素,但是 sizeof(a)/sizeof(a[0]) 求出的是 10,而不是 5。換句話說(shuō),我們無(wú)法通過(guò) sizeof(a)/sizeof(a[0]) 求出數(shù)組中有多少個(gè)有意義的數(shù)據(jù)。
lenght = strlen(str);
這種方法只適用于字符串?dāng)?shù)組
int i=0; while(str[i++] != '\0');
以上就是在C語(yǔ)言中獲取數(shù)組長(zhǎng)度的方法有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞標(biāo)題:在C語(yǔ)言中獲取數(shù)組長(zhǎng)度的方法有哪些-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article48/codihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、App設(shè)計(jì)、外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、做網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容