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