讀書筆記:《The C++ programming Language》 第五章

 The sublime and the ridiculous are often so nearly related that it is difficult to class them separately

                                                                                                                                    -- Tom Paine

 

  真理與荒謬是如此的接近,以至於無法單獨把他們分開

                                                                   -- 托馬斯.潘恩(英國作家)

 

 

本章也是C語言的基礎,因此,這章講的就比較粗略了,發現作者對語法不是很感興趣, 就像他在第二章裏寫的: The emphasis is on design approaches and ways of organizing programs rather than on language details.

 

 這本書的結構就是這樣的,詳細講的是思想,具體的語法作者在後面列了一個附錄,如有需要敬請查閱.

不過這章也講了一些底層的東西和容易錯的問題,深度還是夠的, 比如:

  •    char *p="Plato" ,  其中,此字符串是不允許修改的
  •    指針的操作:關於數組指針大小問題(面試常考)
  •    常量的空間分配問題:  如果常量的值能完全確定, 那麼,就不會分配有空間(和宏定義是一樣的)  但如果常量的地址被使用,那麼,還要分配空間, 常量數組必須分配空間,因爲無法確定使用哪個元素,但很多機器是把常量數組放在只讀空間,從而提高性能
  •     內存對齊(面試常考的問題) 
  •     指針常量和常量指針(面試常考)
  •     還介紹了一個精緻的小程序: 輸入N個字符串,統計重複字符串出現的次數. 這個似乎以前面試也考過.  如果用C語言的思維會比較麻煩,還要考慮溢出的問題. 但用C++的思維卻很簡單, 具體例子請見書

章後作者的建議:

1.         避免對指針做不常見的操作

2.         小心數組越界問題

3.         使用0而不是NULL

4.         使用vectorvalarray,而不是c語言內置的數組(作者已經強調好多次了,不要用原來的內置的數組了!)

5.         使用string而不是char數組

6.         儘量少使用引用做函數參數

7.         除非做底層操作,不要使用void*

8.         不要使用魔術數字”,使用有含義的常量(這個恐怕是所有語言都有提及吧)

 

 

本章思維導圖:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章