sizeof與strlen的概念是很多人到現在都還很模糊的兩個概念,今天在一本書上看到了這個知識點,而且總結的很好,現在將其記錄下來
1、sizeof是一個操作符,而strlen是一個函數;
2、sizeof的參數可以是類型名也可以是變量名,而strlen的參數只能是char*,而且還必須是以“/0”作爲結束符的char*;
3、數組作爲參數傳給sizeof時依然是數組,而傳給strlen時退化爲指針;
4、sizeof在一般的編譯程序中編譯時就已經計算出結果了,因此可以作爲數組的大小,而strlen只有在運行時才能計算出結果;
5、sizeof的參數如果是類型名必須加括號,如果是變量名則不必加括號;
6、sizeof不能返回動態數組的大小,也不能返回外部數組的大小;
7、sizeof不能用於函數類型、不完全類型、或位字段。
8、sizeof 返回結構類型或變量的實際大小,返回靜態數組的全部空間大小。