c語言中,定義陣列後可以用sizeof命令獲得陣列的長度(可容納元素個數)
如:
通過傳遞陣列名引數到子函式中,以獲得陣列長度是不可行的。如:
int
getlength(
int
a)
因為,a是函式引數,到了本函式中,a只是乙個指標(位址,系統在本函式執行時,是不知道a所表示的位址有多大的資料儲存空間,這裡只是告訴函式:乙個資料儲存空間首位址),所以,sizoef(a)的結果是指標變數a佔記憶體的大小,一般在32位機上是4個位元組。a[0]是
int
型別,
sizeof
(a[0])也是4個位元組,所以,結果永遠是1。
因此,獲得陣列長度,只能在陣列定義所在的**區中,採用以上方法,才可以達到效果。
C C 中如何獲取陣列的長度?
c c 中沒有提供 直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使 用sizeof array sizeof array 0 在c語言中習慣上在 使用時都把它定義成乙個巨集,比如 define get a...
C C 中如何獲取陣列的長度?
c c 中沒有提供 直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使 用sizeof array sizeof array 0 在c語言中習慣上在 使用時都把它定義成乙個巨集,比如 define get a...
C C 中如何獲取陣列的長度
c c 中如何獲取陣列的長度?收藏 c c 中沒有提供 直接獲取陣列長度的函式,對於存放字串的字元陣列提供了乙個strlen函式獲取長度,那麼對於其他型別的陣列如何獲取他們的長度呢?其中一種方法是使 用sizeof array sizeof array 0 在c語言中習慣上在 使用時都把它定義成乙個...