淺談sizeof與stelen的區別

sizeofstrlen的概念是很多人到現在都還很模糊的兩個概念,今天在一本書上看到了這個知識點,而且總結的很好,現在將其記錄下來


1、sizeof是一個操作符,而strlen是一個函數;

2、sizeof的參數可以是類型名也可以是變量名,而strlen的參數只能是char*,而且還必須是以“/0”作爲結束符的char*;

3、數組作爲參數傳給sizeof時依然是數組,而傳給strlen時退化爲指針;

4、sizeof在一般的編譯程序中編譯時就已經計算出結果了,因此可以作爲數組的大小,而strlen只有在運行時才能計算出結果;

5、sizeof的參數如果是類型名必須加括號,如果是變量名則不必加括號;

6、sizeof不能返回動態數組的大小,也不能返回外部數組的大小;

7、sizeof不能用於函數類型、不完全類型、或位字段。

8、sizeof 返回結構類型或變量的實際大小,返回靜態數組的全部空間大小。

發佈了20 篇原創文章 · 獲贊 11 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章