本書封面
本書簡介
C語言零起點精進攻略:C/C++入門·提高·精通
出版時間:2020
內容簡介
C語言是學習其他程序設計語言的基礎,也是編寫硬件相關的嵌入式系統等系統級程序的優秀工具。本書從貼近CPU和內存原理的角度,給讀者提供了一個學習—實踐—應用C語言的逐步掌握C語言并成為C程序員的技能提升方案。 全書分5篇17章。前3篇分別講述C語言的起步知識、控制程序流程的基礎、編寫基本C代碼的組織工具;第4篇包含了編寫系統級程序所需要的C指針、結構體、編譯預處理等關鍵知識;第5篇提供了應用C開發程序所需要的技能和初步實踐方法。 本書可作為高校學生學習C語言的教材和輔助讀物,也可作為中學生參加NOIP競賽的參考書,還能作為初級嵌入式程序員理解C語言的工具書。
本書目錄
第1篇 起步知識
第1章 CPU運行原理和C語言003
1.1 CPU是如何工作的 / 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.3.1 C語言的歷史 / 008
1.3.2 C語言程序的特點 / 009
1.3.3 C語言程序的開發過程 / 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.5 C程序的構成 / 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.2 C語言中標識符的分類 / 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.5 C語言程序中數據存儲的基本類型 / 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.1 CPU指令是如何變身匯編語言的 / 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.2 Windows API 和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.1 if語句的使用方法 / 064
4.2.2 使用if語句的程序舉例 / 064
4.2.3 使用if…else 結構實現多項選擇 / 065
4.2.4 使用if…else結構的程序舉例 / 066
4.2.5 if語句的嵌套使用 / 067
4.2.6 使用if語句嵌套的程序舉例 / 069
4.3 用條件運算符實現簡單的選擇結構 / 072
4.3.1 CPU只有JUMP指令 / 072
4.3.2 專業程序員都會錯:懸掛else引發的問題 / 073
4.3.3 這是語言特性,不是數學公式 / 074
4.3.4 少用,但可以了解的語言特性 / 074
4.4 多分支條件選擇語句:switch / 076
4.4.1 switch語句的結構介紹 / 076
4.4.2 大多數人理解的switch語句都是錯的 / 077
4.4.3 多個執行結果共用一個條件 / 079
4.4.4 使用switch語句的程序綜合舉例 / 080
本章小結 / 081
第5章 使用循環結構編寫程序083
5.1 用while實現帶條件的循環語句 / 083
5.1.1 while循環語句的結構和功能 / 083
5.1.2 while循環語句的程序實例 / 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.1 for 循環的結構與功能介紹 / 087
5.3.2 使用for循環的程序實例 / 088
5.3.3 for 循環的幾種不同的格式 / 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.3 main()函數的概念及用途 / 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