天天看點

基礎的sizeof()

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值等于數組所占用的記憶體位元組數

繼續閱讀