●篇起步知識
章CPU運行原理和C語言003
1.1CPU是如何工作的/003
1.1.1指令節拍和流水線/004
1.1.2摩爾定律讓CPU越來越快/004
1.1.3從CPU指令到程序設計語言/006
1.2理解計算機程序設計/006
1.2.1程序是什麼/006
1.2.2程序設計與程序設計語言/007
1.2.3不斷細化問題的結構化程序設計思想/007
1.3C語言的初步知識/008
1.3.1C語言的歷史/008
1.3.2C語言程序的特點/009
1.3.3C語言程序的開發過程/010
1.4程序生成的工具/010
1.4.1編譯器的概念/011
1.4.2連接器的概念/011
1.4.3項目和Building/011
1.5一個簡單的C語言程序/012
1.5.1學習寫個C語言程序/012
1.5.2分析C語言程序的組成部分/012
1.5.3運行這個程序/013
1.5.4牛刀小試/013
1.5.5C程序的構成/014
本章小結/014
第2章C語言基本功015
2.1了解電腦內存的運行方式/015
2.1.1數據和代碼都存儲在內存中/015
2.1.2任何數據都需要標識符纔能讀取/016
2.2認識和使用標識符/017
2.2.1標識符的命名規則/017
2.2.2C語言中標識符的分類/018
2.3什麼是變量/019
2.3.1了解變量/019
2.3.2聲明變量/019
2.3.3初始化變量/020
2.4什麼是常量/020
2.4.1認識常量/020
2.4.2整型常量/021
2.4.3浮點型常量/021
2.4.4字符型常量/022
2.4.5字符串常量/023
2.4.6符號常量/023
2.5C語言程序中數據存儲的基本類型/024
2.5.1存儲整型數據/024
2.5.2存儲實型數據/027
2.5.3存儲字符型數據/028
2.6基於數學程序運算符和表達式/030
2.6.1在C語句中使用算術運算符/031
2.6.2賦值運算符/032
2.6.3用自增、自減運算符來進行運算/034
2.6.4逗號運算符/035
2.6.5使用sizeof運算符求變量占用的空間大小/035
2.6.6使用關繫運算符完成條件的選擇/037
2.6.7注意運算符的優先級和括號/038
2.7數據類型的轉換/040
2.7.1隱式自動轉換/040
2.7.2顯式強制轉換/043
本章小結/044
第2篇代碼基礎
第3章使用順序結構編寫程序047
3.1語句與表達式/047
3.1.1CPU指令是如何變身彙編語言的/047
3.1.2表達式語句與空語句/048
3.1.3復合語句/049
3.2控制屏幕打印/049
3.2.1使用putchar()輸出字符/049
3.2.2格式化輸出函數printf()/050
3.2.3標準錯誤流/052
3.3讀取鍵盤輸入/052
3.3.1用getchar()函數輸入字符/052
3.3.2用getch()和getche()函數輸入/053
3.3.3格式化輸入函數scanf()/054
3.4輸入輸出綜合示例/057
3.5操作繫統和應用程序/057
3.5.1應用程序在Windows中是如何被執行的/058
3.5.2WindowsAPI和C運行時庫/058
本章小結/059
第4章使用選擇結構編寫程序061
4.1用邏輯運算符實現選擇結構/061
4.1.1邏輯運算符的使用/062
4.1.2邏輯運算符的優先級與結合性/063
4.1.3使用邏輯運算符的程序舉例/063
4.2用if語句實現選擇結構/064
4.2.1if語句的使用方法/064
4.2.2使用if語句的程序舉例/064
4.2.3使用if…else結構實現多項選擇/065
4.2.4使用if…else結構的程序舉例/066
4.2.5if語句的嵌套使用/067
4.2.6使用if語句嵌套的程序舉例/069
4.3用條件運算符實現簡單的選擇結構/072
4.3.1CPU隻有JUMP指令/072
4.3.2專業程序員都會錯:懸掛else引發的問題/073
4.3.3這是語言特性,不是數學公式/074
4.3.4少用,但可以了解的語言特性/074
4.4多分支條件選擇語句:switch/076
4.4.1switch語句的結構介紹/076
4.4.2大多數人理解的switch語句都是錯的/077
4.4.3多個執行結果共用一個條件/079
4.4.4使用switch語句的程序綜合舉例/080
本章小結/081
第5章使用循環結構編寫程序083
5.1用while實現帶條件的循環語句/083
5.1.1while循環語句的結構和功能/083
5.1.2while循環語句的程序實例/084
5.2另一種帶條件的循環語句:do…while/086
5.2.1比較do…while與while的差異/086
5.2.2用do…while循環的程序實例/086
5.3用for語句實現循環/087
5.3.1for循環的結構與功能介紹/087
5.3.2使用for循環的程序實例/088
5.3.3for循環的幾種不同的格式/089
5.3.4在for語句中添加逗號運算符/091
5.4不錯流程控制語句/092
5.4.1用goto語句在程序中任意跳轉/092
5.4.2用break語句中斷循環/093
5.4.3用continue語句跳出當前循環/094
5.5各種循環語句的嵌套使用/096
本章小結/098
第3篇能力提高
第6章用函數把程序分塊101
6.1函數的概念/101
6.1.1明白什麼是函數/101
6.1.2使用函數的好處/102
6.1.3main()函數的概念及用途/102
6.2函數的定義/102
6.2.1自己定義一個函數/102
6.2.2定義一個有參函數/104
6.2.3函數的參數/105
6.2.4函數的返回值/106
6.2.5空函數/108
6.3函數的調用原理與聲明/108
6.3.1函數的聲明/108
6.3.2函數調用表達式/109
6.3.3函數調用的方式/109
6.3.4不加()的函數調用會出現什麼/111
6.3.5嵌套調用/111
6.3.6函數在結構化程序設計中的意義/112
6.4遞歸函數/113
6.5變量的作用域和存儲類別/116
6.5.1什麼是變量的作用域/116
6.5.2塊結構/117
6.5.3局部變量和局部變量的作用域/117
6.5.4全局變量和全局變量的作用域/118
6.5.5變量的存儲類別/119
6.5.6靜態變量存儲/119
6.5.7自動變量存儲/121
6.6內部函數與外部函數/122
6.6.1內部函數/122
6.6.2外部函數/124
本章小結/125
第7章數組127
7.1數組的概念及內存占用/127
7.1.1數組的概念/127
7.1.2數組在內存中的存儲/128
7.1.3數組的溢出/129
7.2一維數組/129
7.2.1一維數組的定義/130
7.2.2一維數組的初始化/130
7.2.3一素的引用/131
7.2.4一維數組的應用實例/132
7.3二維數組/132
7.3.1二維數組的定義/133
7.3.2二維數組的初始化/134
7.3.3二素的引用/134
7.3.4二維數組的應用實例/135
7.4字符數組/136
7.4.1字符數組的定義/136
7.4.2字符串與字符數組/136
7.4.3字符數組的初始化/137
7.4.4字符數組的輸入和輸出/137
7.4.5使用scanf()函數接收字符串/138
7.4.6字符數組的應用/139
7.5字素作為函數參數/140
7.6數組在程序中的實際應用舉例/141
7.7數組的專業用法/143
本章小結/146
內容簡介
C語言是學習其他程序設計語言的基礎,也是編寫硬件相關的嵌入式繫統等繫統級程序的很好工具。本書從貼近CPU和內存原理的角度,給讀者提供了一個學習—實踐—應用C語言的逐步掌握C語言並成為C程序員的技能提升方案。全書分5篇17章。前3篇分別講述C語言的起步知識、控制程序流程的基礎、編寫基本C代碼的組織工具;第4篇包含了編寫繫統級程序所需要的C指針、結構體、編譯預處理等關鍵知識;第5篇提供了應用C開發程序所需要的技能和初步實踐方法。本書可作為高校學生學習C語言的教材和輔助讀物,也可作為中學生參加NOIP競賽的參考書,還能作為初級嵌入式程序員理解C語言的工具書。