c語言求陣列長度

2021-10-24 15:38:25 字數 1258 閱讀 1247

c語言對於不同的資料型別的陣列求長度方式稍微有不同的地方:

第一種使用strlen()

strlen()本質上是求位元組的個數,所以當有中文字元(占用位元組一般不為1)時,會產生差錯,而英文本元都是占用乙個直接,求位元組相當於求字元:

#include

#include

intmain()

輸出:

第二種使用sizeof()來完成

sizeof()可以獲取某個資料型別所占用空間的位元組數,通過這樣的方式來計算出陣列長度

#include

#include

intmain()

但這個時候輸出就出現了問題,你會發現輸出為定義的陣列長度,而不是輸出陣列內資料的長度,所以,使用時有一定的條件限制

可以使用迴圈遍歷陣列

#include

#include

intmain()

;while

(a[i]

) i++

;printf

("%d"

,i);

int}

成功輸出:

但是當陣列中有零時例如將a陣列中2改為0:

char a[10]

=;

輸出為:

所以由於while判斷的原因會產生遍歷中斷

2,和字串一樣同樣採用sizeof()方法來進行,也同樣具有侷限性

#include

#include

intmain()

;printf

("%d"

,sizeof

(a)/

sizeof

(int))

;}

結果依舊為定義陣列的長度:

C 求陣列長度

c c 中沒有提供直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使用sizeof array sizeof array 0 在c語言中習慣上在 使用時都把它定義成乙個巨集,比如 define get arr...

求陣列長度

c 求陣列長度為 int arr length sizeof arr sizeof arr 0 為了方便使用,在c語言中常定義巨集來求陣列長度 define arr len array,length 使用時,直接呼叫巨集函式即可,如 int arr int len arr len arr,len 此...

c 求陣列長度 和vector用法

int len sizeof arr size arr 0 1 vector int a 10 定義了10個整型元素的向量 尖括號中為元素型別名,它可以是任何合法的資料型別 但沒有給出初值,其值是不確定的。2 vector int a 10,1 定義了10個整型元素的向量,且給出每個元素的初值為1 ...