一、什么是sizeof?
二、sizeof的用法
1. sizeof變量名
2. sizeof數據類型
3. sizeof表達式
三、sizeof的注意事項
1. sizeof返回值類型為size_t
2. sizeof不能用于函數類型和不完整類型
3. sizeof返回的是靜態類型的大小
4. sizeof不會對操作數進行求值
一、什么是sizeof?
在C語言中,sizeof是一個操作符,用于獲取一個變量、數據類型或表達式的字節數。sizeof操作符返回一個size_t類型的值,表示操作數所占用的字節數。
二、sizeof的用法
1. sizeof變量名
使用sizeof操作符可以獲取一個變量所占用的字節數。例如
t a;tft類型占用4個字節
2. sizeof數據類型
使用sizeof操作符可以獲取一個數據類型所占用的字節數。例如
tftt類型占用4個字節
3. sizeof表達式
使用sizeof操作符可以獲取一個表達式所占用的字節數。例如
t a[10];tft類型,每個占用4個字節)
三、sizeof的注意事項
1. sizeof返回值類型為size_t
ttf輸出sizeof的返回值時,應該使用%zu格式化符號。
2. sizeof不能用于函數類型和不完整類型
sizeof操作符不能用于函數類型和不完整類型(如結構體類型的聲明而未定義其成員)。例如
struct MyStruct;tf", sizeof(struct MyStruct)); // 編譯錯誤,因為MyStruct是不完整類型
3. sizeof返回的是靜態類型的大小
sizeof操作符返回的是操作數的靜態類型所占用的字節數,而不是動態類型。例如
t a = 10;tft
void p = &a;tf", sizeof(p)); // 輸出8或4,取決于指針的大小
4. sizeof不會對操作數進行求值
sizeof操作符不會對其操作數進行求值,因此可以對不合法的表達式使用sizeof。