亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語(yǔ)言獲取數(shù)組長(zhǎng)度的幾種方法

 更新時(shí)間:2021年01月29日 11:03:14   投稿:zx  
這篇文章主要介紹了C語(yǔ)言獲取數(shù)組長(zhǎng)度的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

如何通過編程的手段獲取某個(gè)數(shù)組的長(zhǎng)度呢?

答案是使用關(guān)鍵字 sizeof。

前面說過,用 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。換句話說,我們無法通過 sizeof(a)/sizeof(a[0]) 求出數(shù)組中有多少個(gè)有意義的數(shù)據(jù)。

使用庫(kù)函數(shù)strlen

lenght = strlen(str); 

這種方法只適用于字符串?dāng)?shù)組

使用while循環(huán)遍歷計(jì)數(shù)

int i=0;
while(str[i++] != '\0');

這種方法適用于計(jì)算數(shù)組中實(shí)際元素多少

到此這篇關(guān)于C語(yǔ)言獲取數(shù)組長(zhǎng)度的幾種方法的文章就介紹到這了,更多相關(guān)C語(yǔ)言獲取數(shù)組長(zhǎng)度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論