C陷阱與缺陷第一章 詞法「陷阱」

2021-08-03 22:09:09 字數 516 閱讀 4423

1. =不同於==

=為賦值運算,==為比較;

2.&和| 不同於 &&和||

按位運算子&、|, 邏輯運算子&&、||;

3.詞法分析中的「貪心法」

c語言的某些符號,例如/、*、=,只有乙個字元長,還有其他符號,例如/*、==,有多個字元。編譯器1將程式分解成符號的方法是,從左到右乙個字元乙個字元地讀入,如果判斷已經讀入的兩個字元組成的字串是否可能是乙個符號的組成部分;如果可能,繼續讀入下乙個字元,直到讀入的字元組成的字串已不再可能組成乙個有意義的符號。這個處理策略有時被稱為「貪心法「。

符號中間不能嵌入空格,例如 y = x/*p   和 y = x / *p 不一樣,第乙個為賦值語句,/*p為注釋;第二個 p為指標,指向除數;

4.字元與字串

用單引號『』引起的乙個字元實際上代表乙個整數,整數值對應該字元在字符集(比如ascii字符集)中的序列值。

用雙引號引起的字串」 「代表的是乙個指向 陣列起始字元 的指標,該陣列被雙引號之間的字元以及乙個字元『\0』初始化。

C陷阱與缺陷 第一章 詞法陷阱

符號 token 指程式的乙個基本組成單元,其作用相當於乙個句子中的單詞,是程式的乙個基本的資訊單元。組成符號的字串行就不相同,同一組字串行在某個上下文環境中屬於乙個符號,而在另乙個上下文環境中可能屬於完全不同的另乙個符號。編譯器中負責將程式分解為乙個乙個符號的部分,一般稱為 詞法分析器 c語言中,...

第一章詞法陷阱

一些基本概念 符號 程式的乙個基本組成單元,作用相當於句子中的單詞,是程式的基本資訊單元 字串行 由符號組成,在不同的語境中可能會有不同的含義。詞法分析器 編譯器中將程式分解為符號的部分。1.if x big big x 1 這裡的符號依次是關鍵字 if x big 依次類推,符號間的空白 空格 製...

《C陷阱與缺陷》第一章

c陷阱與缺陷 第一章while c c t c n c getc f 此例項本意是遍歷檔案並且跳過空和一些換行符,製表符。但是由於第乙個 寫成了 則此程式變成了。將 c t c n 表示式的值賦給了c,並判斷c的值。由於c恆等於1則這會讀取到檔案最後。如果真的想要實現在判斷中使用 的情況應該寫成 i...