文章目錄
- sizeof運算符的結果部分地依賴于其作用的類型
sizeof運算符的結果部分地依賴于其作用的類型
- 對char或者類型為char的表達式執行sizeof運算,結果得1
- 對引用類型執行sizeof運算得到被引用對象所占空間的大小
- 對指針執行sizeof運算得到指針本身所占空間的大小
- 對解引用指針執行sizeof運算得到指針指向的對象所占空間的大小,指針不需有效
- 對數組執行sizeof運算得到整個數組所占空間的大小,等價于對數組中所有的元素各執行一次sizeof運算并將所得結果求和。注意,sizeof運算不會把數組轉換成指針來處理
- 對string對象或vector對象執行sizeof運算只返回該類型固定部分的大小,不會計算對象中的元素占用了多少空間
因為執行sizeof運算能得到整個數組的大小,所以可以用數組的大小除以單個元素的大小得到數組中元素的個數:
constexpr size_t sz = sizeof(ia)/sizeof(*ia); // sz為ia的元素數量
int arr[sz];
因為sizeof的返回值是一個常量表達式,所以我們可以用sizeof的結果聲明數組的維度。