C陷阱與缺陷 筆記

2021-06-27 18:56:34 字數 707 閱讀 1288

這本書很薄,看目錄感覺講的也很基礎,估計能較快看完。算是開始閱讀前陣子買的那波書的熱身吧。

學過編譯原理,我們應當了解,編譯器的工作基本過程。在詞法分析中,不同編譯器的不同設定,會帶來不同的問題。雖然很是細微,但是如果出錯,可能編譯器不提示,讓人抓狂.

int a = 0195;

int b = 0215;

int c = 141;

cout << a << endl;

cout << b << endl;

cout << c << endl;

首先,編譯是會報錯的,第二,輸出的 b 與 c 的值是相同的。因為c編譯器預設,0開頭的會被預設為八進位制。故而錯誤在**,也是顯而易見的,a中9超過八進位制了。當然了,在平時的程式設計中,如果腦子沒抽風的話,應該不會沒事讓int i = 01;

除此以外,之前在《程式設計師面試寶典》中也看到過這樣一題:

if( 'a' == a )

if( a == 'a' )

這樣兩種表達方式,哪一種更好?

答案應當是前者(刮開有獎)。

因為如果你不小心手滑,把 == 寫成了 = ,這種情況下編譯器是不會報錯的,因此產生的結果錯誤,你只能去除錯了╮(╯▽╰)╭

另外,課後習題1-4,a+++++b這種表達方式在vs2010中是報錯的,而且吧,忒沒意思,好好寫好括號才是正道。

C陷阱與缺陷 筆記

fortan formula translator 公式翻譯程式語言 fibonacci 斐波那契 為什麼n 的含義是n 0,而不是n 0?a b的含義是?賦值操作符為什麼是 而不是 ascii碼 貪心原則?10是否能表示成010?單引號括起來的乙個字元表示乙個整數,雙引號括起來的乙個字元代表乙個指...

C陷阱與缺陷筆記

第一章 詞法陷阱 1.1 不同於 1.2 與 不同於 與 1.3 詞法分析中的 貪心法 1.4 整型變數 1.5 字元與字串 第二章 語法陷阱 2.1 理解函式宣告 2.2 運算子的優先順序問題 2.3 注意作為語句結束標誌的分號 2.4 switch語句 2.5 函式呼叫 2.6 懸掛 else引...

《C陷阱與C缺陷》筆記

if x 0 else if x 0 char r,malloc r malloc strlen s strlen t 1 if r strcpy r,s strcat r,t free r include void main setbuf stdout buf 所有寫入stdout的輸出都使用bu...