官术网_书友最值得收藏!

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語言,這種重構復習知識的方法,也許會讓你有意想不到的收獲。

主站蜘蛛池模板: 浏阳市| 崇信县| 宁化县| 卫辉市| 伊金霍洛旗| 康平县| 新野县| 清流县| 调兵山市| 潜山县| 东阳市| 敖汉旗| 石家庄市| 静海县| 嵩明县| 裕民县| 板桥市| 嘉义县| 上蔡县| 即墨市| 连云港市| 文成县| 新宾| 怀化市| 民县| 诸暨市| 措美县| 舟山市| 龙游县| 伊金霍洛旗| 宁蒗| 沂源县| 石家庄市| 阿坝县| 子长县| 丰台区| 广饶县| 英吉沙县| 乌兰浩特市| 于田县| 南平市|