- C/C++實踐進階之道:寫給程序員看的編程書
- 陳黎娟
- 1679字
- 2020-06-29 11:37:36
1-3 掌握C語言核心,逐步擴張
最近有重新閱讀《C++程序設計語言》和《C++語言的設計和演化》,有兩個感覺:一方面,相對于C++來說,C語言簡單容易;另一方面,C語言又有很多缺陷、陷阱,比如:const int *i;和int const *i;意思一樣嗎?int *ptr[3]是定義指向數組的指針,還是指針數組?……有時候要想一下才能明白,有時候還得上機測試才能搞清楚,而且還經常擔心不同的系統是不是會有不同的解釋。
對于C語言的學習來說,恐怕要采取這樣的態度:首先學習“Core C”,了解語言的概貌,基礎知識,基本類型,基本表達式和簡單運算方法,三種結構,簡單數組,函數,指針和文件,實例應該比較簡單,沒有什么特別的技巧,代碼簡單易讀,更多地把C看成是一種通用語言(或者說學習程序語言通用之處),就是其他語言也會有這些特色來學習,打下良好基礎,將來學習C++、Java或者C#就更輕松。然后結合更多的編程實踐,學習C語言中更多的精妙之處,比如宏定義,函數指針,字符串函數,指針高級用法等。
我想這樣的教學思路,既方便讀者快速掌握C最常用、最核心的部分,不側重于細節。又能在實踐編程中逐步提高,不但可以讀懂別人編寫的晦澀的C代碼,又能在程序設計需要的時候使用合適的技巧。
不要光說不練,如果由我來編寫一本“C語言程序設計”的圖書,我會如何呢?我想了一下,大致的結構應如下:
注:目錄中標*的是提高部分,往往是C語言獨有的特色,可以不講,或者作為閱讀和練習使用。
雖然本書的定位是進階提升,而不是基礎入門;但是我覺得下面這個目錄仍有存在意義,它可以幫助讀者用較快的速度和精煉的框架來梳理C語言的基礎知識,為后面的提升學習打下基礎。
第一講:C語言的特色:
1.1:概述
1.2:Hello World:講述程序基本結構和基本編寫方法
1.3:更進一步的Hello World:明白函數是C程序的基本架構
1.4:有變量定義的Hello World:更進一步地了解C語言的概貌和調試錯誤
1.5:算法和程序
1.6:本講小結
第二講:C語言的基礎知識
2.1:數字在程序中的表示
2.2:整形變量
2.3:其他基本數據類型
2.4:保留字和關鍵字
2.5:運算符和表達式
2.6:本講小結
第三講:順序和選擇結構
3.1:程序設計的三種結構
3.2:if...do...
3.3:if...else...
3.4:switch...
3.5:選擇結構的嵌套
*3.6:if...else...你可能會錯:順帶說明程序寫作結構的重要性
3.7:本講小結
第四講:讓程序循環
4.1:當程序需要循環的時候
4.2:while...
4.3:do...
4.4:for...
*4.5:C++對for語句的改變
*4.6:break...continue...你可能會錯
4.7:本講小結
第五講:函數
5.1:結構化程序設計概述
5.2:函數的作用和定義
5.3:在主程序中調用函數
5.4:函數中調用函數
5.5:程序中變量生命期:全局變量和局部變量
*5.6:函數改變程序結構:高內聚,低耦合
5.7:本講小結
第六講:簡單數組
6.1:定義和使用數組:數組的概念和意義必須明了
*6.2:小心:從0開始,不檢查邊界
6.3:int a[3]好,還是int m,n,i好
6.4:抱歉:數組不能作為函數參數和返回值
*6.5:不推薦使用的多維數組
6.6:本講小結
第七講:指針
7.1:數據在內存中的存儲方式
7.2:通過地址找到人:指針的定義和使用
7.3:通過指針訪問數據
7.4:利用指針傳遞參數:by value和by address
7.5:小心操縱指針
7.6:本講小結
第八講:字符串處理
8.1:字符數組和字符串
8.2:string.h
8.3:scanf()
8.4:綜合示例
8.5:本講小結
第九講:結構體與聯合體
9.1:綜合描述一個對象的屬性
9.2:采用struct定義(typedef)
9.3:訪問struct中的成員
9.4:指向結構體的指針作為函數參數
*9.5:結構體中的指向自己的指針
*9.6:聯合體
9.7:本講小結
第十講:基本宏定義
10.1:#define
10.2:函數的作用和定義
10.3:在主程序中調用函數
10.4:函數中調用函數
10.5:程序中變量生命期:全局變量和局部變量
*10.6:函數改變程序結構:高內聚,低耦合
10.7:本講小結
第十一講:文件
11.1文件概述
11.2以C的眼光看文件
11.3文件的打開和關閉
11.4文件的順序讀寫
11.5文件的定位與隨機讀寫
11.6文件狀態檢查函數
11.7本講小結
第十二講:綜合
12.1:頭文件
12.2:project
12.3:把一個大程序分成幾塊
12.4:分別編譯和鏈接
12.5:本講小結
*第十三講:const的關鍵用法
第十四講:函數指針
第十五講:聲明,定義和typedef(sizeof這里講)
第十六講:前后臺程序設計
16.1:中斷的意思
16.2:前后臺程序的設計模式
16.3:示例
16.4:數據丟失與實時性
16.5:程序的改進和適用范圍
16.6:本講小結
注意:請用上面的目錄去復習理解C語言,這種重構復習知識的方法,也許會讓你有意想不到的收獲。
- MySQL數據庫管理實戰
- Learn Type:Driven Development
- PHP基礎案例教程
- 認識編程:以Python語言講透編程的本質
- Selenium Design Patterns and Best Practices
- Neo4j Essentials
- Access 2010數據庫基礎與應用項目式教程(第3版)
- Python數據可視化之Matplotlib與Pyecharts實戰
- Java程序設計:原理與范例
- C++反匯編與逆向分析技術揭秘(第2版)
- JavaScript程序設計:基礎·PHP·XML
- SSH框架企業級應用實戰
- HTML5移動Web開發
- IBM RUP參考與認證指南
- 高性能MVVM框架的設計與實現:San