sizeof() 是什麼?
sizeof是C/C++中的一個操作符(operator)
其傳回值類型為size_t,在頭檔案stddef.h中定義。這是一個依賴于編譯系統的值,一般定義為
typedef
unsigned
int
size_t
;
sizeof()是幹嘛用的?
簡單的說其作用就是傳回一個對象或者類型所占的記憶體位元組數。
如何使用sizeof()?
sizeof() 有三種文法格式:
- sizeof(對象)
- sizeof(類型)
- sizeof 對象 (不建議使用該種方法)
實際上,sizeof計算對象的大小也是轉換成對對象類型的計算,也就是說,同種類型的不同對象其sizeof值都是一緻的。這裡,對象可以進一步延伸至表達式,即sizeof可以對一個表達式求值,編譯器根據表達式的最終結果類型來确定大小,一般不會對表達式進行計算。
sizeof也可以對一個函數調用求值,其結果是函數傳回類型的大小,函數并不會被調用。
好了,重點來了:
指針變量的sizeof()
指針記錄了另一個對象的位址,是以指針變量的sizeof值與指針所指的對象沒有任何關系,正是由于所有的指針變量所占記憶體大小相等,是以MFC消息處理函數使用兩個參數WPARAM、LPARAM就能傳遞各種複雜的消息結構(使用指向結構體的指針)。
數組的sizeof()
數組的sizeof值等于數組所占用的記憶體位元組數