c語言-記錄閱讀《c缺陷與陷阱》

南風無知意發表於2020-10-09

首先,今天看到的是前言、第0章和第一章的內容。前言沒什麼好說的,只是這裡我想要重點的推薦這本書。這本書我之前就看過電子版,覺得很不錯,於是就買了紙質書,然後就有了我現在的閱讀記錄,希望能夠更好的吸收和理解這本書的內容。

第0章

程式設計錯誤實際上反映的是程式與程式設計師的"心智模式"兩者的相異之處。
心智模式被解釋為 “人們深植心中,對於周遭世界如何運作的看法和行為”
這要求程式設計師要不斷從錯誤中更新我們的心智模式,從而減少程式設計錯誤。
那麼如和更新心智模式呢,心智模式在我讀的一本關於資料分析的書裡面也提到了它,這本書說要觀察資料,挖掘未知的資訊,進而更新心智模式,進而更好的資料分析。其實這兩者是相互聯絡的,我們也得這樣做,我們需要不斷的學習,挖掘未知資訊,從而更新心智模式,從而減少程式設計錯誤。

第一章

1.程式中單個字元孤立來看並沒有什麼意義,只有結合上下文才有意義。

p->s = "->"

兩處出現的兩個’-‘字元的意義完全不同。第一個’-‘字元是符號->的組成部分,第二個’-'是一個字串的組成部分。

2.編譯器中負責把程式分解為一個一個符號的部分,一般稱為"詞法分析器"
詞法分析是 採用 貪心法 進行分析的。即儘可能讀取多的字元組成一個 c語言中的一個符號,讀取到不能組成一個符號時停止。

y = x/*p  /*p指向除數*/

根據貪心法,其實/*被編譯器理解為一段註釋的開始,不會顧及後面的p。
因此,正確寫法為

y = x/(*p)  /*p指向除數*/

3.如果一個整型變數的第一個字元是0, 那麼該常量將被視為八進位制。
比如,10和010含義完全不一樣。

相關文章