1.什麼是sizeof?
sizeof返回一條表達式或者一個類型名字所佔的字節數。sizeof運算滿足右結合律,其所得的值是一個size_t類型的的常量表達式。運算符的運算對象有兩種形式:
sizeof (type)
sizeof expr
在第二種形式中,sizeof返回的是表達式結果類型的大小。與衆不同的一點是,sizeof實際上並不計算表達式的值。
2.如何確定sizeof 返回值的大小?
sizeof運算符的運算結果部分依賴於其作用的類型:
- 對char或者類型爲char的表達式執行sizeof 運算得到的結果爲1。
- 對引用類型執行sizeof 得到的是引用對象的大小。
- 對指針執行sizeof 運算得到的是指針本身所佔的空間大小,通常爲4。
- 對解引用執行sizeof 運算得到的是指針指向的對象所佔的空間大小,指針不需要有效。
- 對數組得到的是整個數組空間的大小
- 對string 或者vector 對象執行sizeof 運算只返回該類型固定部分的大小,不會計算對象中的元素佔了多少存儲空間。
.