常年被人誤認為函式sizeof
sizeof 是關鍵字不是函式,其實就算不知道它是否為32 個關鍵字之一時,我們也可以 借助編譯器確定它的身份。看下面的例子: int i=0;
a),sizeof(int); b),sizeof(i); c),sizeof int; d),sizeof i; 毫無疑問,32 位系統下a),b)的值為4。那c)的呢?d)的呢?
在32 位系統下,通過visual c++6.0 或任意一編譯器除錯,我們發現d)的結果也為4。
咦?sizeof 後面的括號呢?沒有括號居然也行,那想想,函式名後面沒有括號行嗎?由此輕 易得出sizeof 絕非函式。
好,再看c)。編譯器怎麼怎麼提示出錯呢?不是說sizeof 是個關鍵字,其後面的括號 可以沒有麼?那你想想sizeof int 表示什麼啊?int 前面加乙個關鍵字?型別擴充套件?明顯不 正確,我們可以在int 前加unsigned,const 等關鍵字但不能加sizeof。好,記住:sizeof 在 計算變數所佔空間大小時,括號可以省略,而計算型別(模子)大小時不能省略。一般情況下, 咱也別偷這個懶,乖乖的寫上括號,繼續裝作乙個「函式」,做乙個「披著函式皮的關鍵字」。 做我的關鍵字,讓人家認為是函式去吧。
關鍵字 分節10(const)
const 關鍵字也許該被替換為readolny const 是constant 的縮寫,是恆定不變的意思,也翻譯為常量 常數等。很不幸,正是 因為這一點,很多人都認為被const 修飾的值是常量。這是不精確的,精確的說應該是唯讀 的變數,其值在編譯時不能被使用,因為編譯器在編譯時不知道其儲存的內容...
關鍵字 分節18(typedef)
有這樣乙個笑話 乙個獵人在河邊抓捕一條蛇,蛇逃進了水裡。過一會,乙個烏龜爬到岸邊。獵人一把抓住這個烏龜,大聲的說道 小樣,別你為你穿了個馬甲我就不認識你 了!typedef 關鍵字是個偉大的縫紉師,擅長做馬甲,任何東西穿上這個馬甲就立馬變樣。它可以把狼變成一頭羊,也能把羊變成一頭狼。甚至還可以把長著...
簡記關鍵字sizeof
sizeof 是計算分配記憶體的大小,是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子。但是最好不要把sizeof當成函式,也不要看作一元操作符,把他當成乙個特殊的編譯預處理。sizeof typename sizeof 型別 sizeof objict sizeof物件 strlen執行的...