sizeof是關鍵字,這一點毋庸置疑。你不能將sizeof定義為任何標識符。查看C語言標准文檔裡的說明:
sizeof是運算符(操作符)嗎
C語言中,sizeof是運算符(操作符),而且是唯一一個以單詞形式出現的運算符,它用來計算存放某一個量需要占用多少字節,它的結合性是從右到左。查看C語言標准文檔裡的說明:
sizeof不是函數。產生這樣的疑問主要是因為有時候sizeof的外在表現確實有點類似函數,比如:i = sizeof(int);這樣的式子,就很容易讓人誤以為sizeof是一個函數呢。但如果sizeof是函數,那麼sizeof i;(假設i為int變量)這種式子一定不能成立,因為函數的參數不可能不用括號括起來。事實上這個sizeof i;可以正常運行,這就說明sizeof絕對不是函數。
sizeof頂著關鍵字的光環,發揮著運算符的作用。它主要用來計算某一個量在當前系統中所需占用的字節數:
sizeof後面的括號可以去掉嗎?如果是具體的量,無論常量還是變量,都可以直接寫 sizeof 量,但如果是對類型進行運算,則必須加括號:
運行結果: 注意上圖出現的異常情況,這說明:sizeof面對直接量比如'A'、65等時,會將其默認轉換為int類型計算,如果需要計算char或者short的直接常量大小,需要強制轉換。
對語法存疑時,其發布的標准文檔是最具說服力的解釋文件。