天天看點

c語言在函數中使用sizeof求數組長度

c語言sizeof的重要用途之一就是求數組長度,但是sizeof必須在數組定義的位置使用。不能作為參數傳入函數并在函數中使用sizeof;

比如下邊這個例子

c語言在函數中使用sizeof求數組長度

函數中列印結果為;

c語言在函數中使用sizeof求數組長度

 數組的長度應該是5但是結果卻是2,這是為什麼呢?因為在函數裡邊,a隻是作為一個指針,而不是a【】一整個數組,運作時編譯器不知道以a表示的位址有多大。sizeof(a)隻是一個指針的大小。

嘗試如下:

c語言在函數中使用sizeof求數組長度

結果為

c語言在函數中使用sizeof求數組長度

而如果sizeof用在定義數組階段就沒事;

c語言在函數中使用sizeof求數組長度

結果為

c語言在函數中使用sizeof求數組長度

繼續閱讀