sizeof運算符

原文鏈接:https://blog.csdn.net/liuwenjuan_cherry/article/details/82346383

sizeof運算符
sizeof是最冤枉的關鍵字,它是一個運算符而不是函數!!! 
1. sizeof是一個關鍵字(操作符),它的結果類型是size_t.它在頭文件中typedef爲unsigned int類型。sizeof是算符,而strlen是一個函數 
2. sizeof可以用類型做參數,strlen只能用char*做參數,而且必須是以’\0’結尾的,sizeof還可以用函數調用(不執行函數體)做參數大小等於返回類型的大小。 
3. 數組做sizeof的參數不退化,傳遞給strlen就退化爲指針了 
4. sizeof是在程序編譯的時候就已經將sizeof計算過了(是類型或者變量的長度),而strlen的結果是要在調用的時候才能計算出來,是用來計算字符串的長度,而不是內存的大小 
5. sizeof後如果是類型就必須加括弧,如果是變量就可以不加,但是strlen函數調用時必須後面有括弧 
6. sizeof返回的是實際空間的大小,並不能計算動態分配了的數組或外部的數組的大小 
7. sizeof操作符不能用於函數類型,不完全類型或位段,不完全類型值具有位置未知存儲大小的數組類型(柔性數組),位置內容的聯合體或者結構體類型、void類型等 
8. sizeof可以求取void*類型的大小 
9. 當表達式作爲sizeof的操作數的時候,它的返回值是表達式計算結果的類型大小,但是它不對表達式求值
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章