從這篇開始,按照個人理解,整理Kernigham和Ritchie的《C程序設計語言(第2版·新版)》。程序員
C很適合用來編寫編譯器和操做系統,被稱做「系統編程語言」;BCPL語言-->B語言-->C語言; 編程
數據類型:基本(字符,多種長度整型和浮點型);派生(指針,數組,結構,聯合);表達式:運算符+操做數,總能夠做爲語句;指針:提供與具體機器無關的地址算術運算;數組
控制流結構:語句組,條件判斷(if-else),多路選擇(switch),終止測試在頂部的循環(while, for),終止測試在底部的循環(do),提早跳出循環(break);編程語言
函數:可返回基本、結構、聯合、指針類型;總可遞歸調用;局部變量;函數、變量做用範圍可改變;函數
預處理:對程序文本進行宏替換、包含其餘源文件、條件編譯;工具
C語言未提供直接處理複合對象(字符串,集合,列表、數組)的操做;除局部變量提供的靜態定義和堆棧外未定義任何存儲分配工具;未提供輸入輸出功能。全部這些高層機制必須由顯式調用函數來提供。測試
不完美之處:某些運算符優先級不正確;某些語法還可優化優化
語法變化:函數聲明和定義(修改);結構賦值和枚舉定義等(新增);禁止指針和整型交換值,要求變量正確聲明和顯式強制類型轉換spa
定義標準庫:訪問OS;格式化I/O;內存分配;字符串操做;標準頭文件(訪問函數聲明或數據類型聲明);操作系統
提出可移植性,預設一個常量集合來描述機器特性;
第1章:C語言核心部分;
2-6章:語言特性
基本數據類型、運算符、表達式;
控制流;
函數和程序結構(包括外部變量、做用域規則和多源文件),以及預處理器;
指針和地址運算;
結構和聯合;
7:標準庫,全部支持C的機器都支持它
8:C與UNIX接口:I/O;文件系統;存儲分配
附錄A:語言參考手冊簡潔版:給程序員看的,ANSI C是寫編譯器要看的
附錄B:標準庫簡潔版
附錄C:ANSI C與原始C的變動小結。標準和各個特定編譯器是解釋語言的最終權威。