1.sizeof操作符的結果類型是size_t,它在頭文件typedef定義為unsigned int 類型,該類型能容納實現所建立的最大對象的字節大小。
2.sizeof是運算符,strlen是函數。
3.sizeof 可以用類型做參數,strlen只能用char * 做參數,且必須是以“\0”結尾的。sizeof還可以用函數做參數。
4.數組做sizeof 的參數不退化,傳遞給strlen就退化為指針。
5.大部分編譯程序在編譯的售後就把sizeof 計算過了,是類型或者是變量的長度。這就是sizeof 可以用來定義數組維數的原因。
6.strlen 的結果要在運行的時候才能計算出來,用來計算字符串的長度,而不是類型占內存的大小。
7.sizeof 後如果是類型必須加括號,如果是變量名可以不加括號
8.當使用了一個結構類型或者變量時,sizeof 返回實際的大小。當使用一靜態的空間數組時,sizeof 返回全部數組的尺寸,sizeof 操作不能返回動態分配的數組或外部的數組的尺寸。數組作為參數傳給函數時傳的是指針而不是數組,傳遞的是數組的首地址。
9.計算結構變量的大小就必須討論數據對齊問題。為了使CPU 存取的速度最快,C++處理數據時經常把結構變量中的成員的大小按照4或8俄倍數計算。#pragma pack(n)。
10.sizeof 不能用於函數類型、不完全類型或者位字段。