C/C++實踐進階之道:寫給程序員看的編程書 版權信息
- ISBN:9787113237585
- 條形碼:9787113237585 ; 978-7-113-23758-5
- 裝幀:70g膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
C/C++實踐進階之道:寫給程序員看的編程書 本書特色
這是一本C/C 語言應用能力進階的圖書,總結了一個典型的學習者第101個小時開始的學習路線和心得,你值得擁有。本書內容包括夯實C語言核心基礎、提升你的編程功力、積累專業程序員開發經驗、理解C 精髓和以C 為母語五個部分,內容豐富,集開發技巧、成長經驗和學習資料于一體,具有很高的實用性和可讀性,對于初級程序員和學習編程語言的大學生大有裨益,可以幫助其掌握C/C 語言精髓,提高自己的程序設計水平。
C/C++實踐進階之道:寫給程序員看的編程書 內容簡介
本書是為有志于做程序員的理工科大學生而寫的實踐進階圖書, 在讀者已有程序設計語言的基礎上, 逐步提高, 夯實具備專業程序員的基礎。主要內容包括: Hello, C語言 ; 建立起程序設計基本概念等。
C/C++實踐進階之道:寫給程序員看的編程書 目錄
第1篇 夯實C語言核心基礎
第1章 Hello,C語言
1-1 閉上眼睛細數C語言的特點 2
C語言精巧 2
支持結構化程序編寫模型 2
變量和語句是C語言的細胞 3
數學運算和邏輯表達式是C語言的**個難點 3
函數是C語言賜給我們*有力的武器 3
數組是我們**次學習組織數據 4
指針是C語言的精華,但它是魔鬼發明的 4
struct是我們臨摹世界的畫板 4
掌握基本概念的組合才是成為C語言高手的必經之路 4
字符串是指針確認的 5
位運算是C語言底層開發的特色 5
預處理命令是程序開發的腳手架 5
文件是一個序列 5
1-2 從基本概念開始 6
1-3 掌握C語言核心,逐步擴張 8
1-4
C 時代的C語言學習 11
1-5
C :更好的C 12
新的注釋模式 13
新的輸入/輸出方法 13
const的新功能 13
變量的定義更加靈活 13
函數的重載 13
帶默認參數的函數 13
變量的引用類型 13
新的內存分配函數new和delete 14
內嵌(inline)函數 14
作用域運算符 14
第2章 建立起程序設計基本概念
2-1 軟件與程序 15
2-2 程序與可執行文件 16
2-3 程序與源程序 17
2-4 源程序與程序設計語言 18
2-5 程序設計的基本過程 19
2-6 文件和目錄 19
2-7 理解編碼上機調試和步驟
22
2-8
C/C 程序員成長經驗 23
**階段:C語言的學習 23
第二階段:課程設計和畢業設計 24
第三階段:硬件開發和學習C 25
第四階段:中型項目開發經驗 25
第五階段:大型項目開發經驗 25
總結個人學習成長的道路 25
因材施教:使用兩套教材 26
第3章 在Visual C 中驗證C程序
3-1 選擇Visual C 的三個理由 27
3-2 調試程序的五個步驟 28
3-3 編寫Console應用 32
3-4 跨過調試程序的*初障礙
35
語法錯誤(Syntax Error) 38
語義錯誤(Semantic Error) 38
運行錯誤(BUG) 39
3-5
Visual C 簡易使用參考 40
新建文檔 40
打開文檔 41
查看文檔 42
保存文檔 44
在打開的文檔中搜索文本 45
在已打開的文檔中替換文本 45
在磁盤文件中搜索文本 46
常規表達式搜索 46
3-6 從Turbo C到Borland C
47
3-7 理解函數庫和頭文件 48
第4章 代碼基本邏輯:順序、選擇和循環
4-1 流程圖 51
4-2 順序結構 52
【示例4-1】輸入三角形的三邊長,求三角形面積 52
4-3 選擇結構 52
4-3-1
if語句 52
【示例4-2】if語句的基本用法(輸入數值,如果大于0,輸出“正數”) 53
【示例4-3】利用if-else語句對數值進行正負的判斷 54
4-3-2
switch語句 54
【示例4-4】利用switch判斷用戶輸入的日期是星期幾 55
【示例4-5】判斷輸入的日期是星期幾(使用break語句) 56
【示例4-6】利用if語句根據成績范圍給出等級 56
4-4 循環結構 57
4-4-1
利用goto語句和if語句構成循環 57
【示例4-7】計算1 2 3 … 100的值 57
4-4-2
while語句 58
【示例4-8】利用while循環語句計算1 2 3 … 100的值 58
4-4-3
do-while語句 58
【示例4-9】利用do-while循環語句來計算1 2 3 … 100的值 59
4-4-4
for語句 59
【示例4-10】小高斯的for循環語句實現方法。 60
【示例4-11】小高斯的for循環語句實現方法之二(省略表達式2的應用舉例) 60
【示例4-12】小高斯的for循環語句實現方法之三(省略表達式3的應用舉例) 60
【示例4-13】小高斯的for循環語句實現方法之四(省略表達式1和表達式3的
應用舉例) 61
【示例4-14】當需要無限循環時,for循環語句表達式全部被省略的應用舉例 61
【示例4-15】小高斯的for循環實現方法之五(for語句中的逗號表達式) 61
【示例4-16】讀懂奇怪的for循環(for循環語句中的表達式2為特殊表達式時) 61
【示例4-17】利用while循環求滿足n2-15n-36>0的*小整數 62
4-4-5
break語句 63
【示例4-18】演示break語句的應用:計算1 2 3 … 100的值 63
4-4-6
continue語句 63
【示例4-19】演示continue語句的應用:計算1到100的偶數之和 63
4-5 本章綜合實例 64
4-5-1
綜合實例1:求某整數段區間中的素數,并輸出 64
4-5-2
綜合實例2:根據用戶輸入的年份判斷年份是否為閏年 66
第5章 加強對函數的理解
5-1 函數的引入 67
【示例5-1】求從1加到100的值 67
【示例5-2】求從1加到n的值 68
【示例5-3】求從1加到n的值(高斯算法) 69
5-2 函數的基本概念 69
5-3 庫函數 70
5-4 函數的嵌套調用 71
【示例5-4】在max3函數中實現嵌套調用 71
5-5 代碼封裝:模塊化程序設計的起步 71
5-6 接口/實現思想的**次體現 72
5-7 總結一下:函數幫你編寫更好的代碼 72
5-8 對比Pascal語言和C語言中函數使用的差異 74
第6章 總結:快速掌握C語言基礎知識
6-1 再次Understand
C 76
6-2 把基礎知識串起來 77
6-3 綜合實例1:打印Fibonacci數列 78
6-4 綜合實例2:把Fibonacci數列中的素數找出來 79
6-5 綜合案例3:在Fibonacci數列中加入數組的應用 80
6-6 *后的綜合性代碼 81
6-7 成為C程序員你還需要知道的事情
82
6-8 三小時你可以學會FORTRAN
85
第2篇 提升你的編程功力
第7章 逐步寫出大程序
7-1 準備案例1:閏年的判斷 88
7-2 準備案例2:這一天是星期幾 89
7-3 更高要求:萬年歷的編寫
91
7-4 再完善一下:打印某年日歷
94
7-5 總結與思考:程序成長與模塊化 96
第8章 自己動手編寫小工具
8-1
DIR命令今猶在 97
8-2
DOS版DIR命令 98
8-3
Windows版本的DIR 100
8-4 工具編寫總結和練習 103
8-5 繼續學習和提高 104
第9章 學會組織自己的代碼
9-1 解決問題的基本方法和C程序的基本結構 105
9-2 用Project管理自己的代碼 108
9-3 為自己的代碼擴充功能
110
9-4 養成一些編碼的好習慣
111
第10章 讀源代碼,逐步體會算法的力量
10-1
讀函數源代碼,學技巧 116
10-2
體會算法的力量 118
【示例10-1】判斷一個自然數n是否是素數 119
10-3
算法的三重境界 121
【示例10-2】寫一個函數計算當參數為n(n很大)時的值1-2 3-4 5-6 7-… n 121
【示例10-3】在一個很小的內存空間中,將北京某電話局的8位電話號碼排序。號碼在
10000個以內 122
10-4
那些C語言必須調試的陷阱 123
第3篇 積累專業程序員的開發經驗
第11章 煩瑣但很重要的變量和類型
11-1
計算機是如何存儲變量的 126
11-2
確保每個對象在使用前已被初始化 131
11-3
局部變量和全局變量的差別 133
11-3-1
首先理解函數中的局部變量 134
11-3-2
其次理解函數外的全局變量 135
11-3-3
掌握變量在內存中的存儲方式 136
11-4
掌握變量定義的位置與時機 138
11-5
引用難道只是別人的替身 140
第12章 理解數組和指針
12-1
理解指針的本質 143
12-1-1
指針變量和變量的指針 143
12-1-2
空指針和void指針 145
12-1-3
const修飾指針 146
12-2
論數組和指針的等價性 147
12-3
再論數組和指針的差異性 149
12-3-1
字符串數組與字符指針的區別 149
12-3-2
當編譯器強行把指針和數組混合 151
12-4
充滿疑惑的數組指針和指針數組 152
第13章 常見更要謹慎的字符和字符串
13-1
關于字符編碼的討論 155
13-2
請牢記字符串結束標志為‘\0’ 157
13-3
請務必小心使用memcpy()系列函數 159
【示例13-1】POD對象的復制
160
13-4
正確使用字符串處理函數 161
第14章 表達式和語句中的陷阱
14-1
運算符引發的混亂 164
14-2
表達式求值順序不要想當然 167
14-3
switch-case語句的陷阱 170
14-3-1
正確使用break語句 171
14-3-2
case標號和default標號的正確使用 173
14-4
a || b和a&&b的陷阱 174
14-4-1
陷阱一:短路求值 175
【示例14-1】沒想清邏輯,代碼死循環 175
14-4-2
陷阱二:邏輯運算混淆使用 176
14-5
“懸掛”else引起的問題 177
第15章 函數的秘密
15-1
禁止函數返回局部變量的引用 180
15-2
函數傳值、傳指針及傳引用的效率分析 183
15-3
內聯函數會像宏一樣替換嗎 188
15-4
函數重載需考慮什么 191
15-4-1
準確理解函數重載 191
【示例15-1】實現一個打印函數,既可打印int類型,也可打印string類型 191
15-4-2
為什么引入函數重載 192
15-4-3
如何處理函數重載 192
15-5
不要讓main返回void 195
15-5-1
理解main函數的定義形式 195
15-5-2
main函數的返回值作用 196
15-5-3
void main()形式函數的風險隱患 197
15-5-4 “好壞難定”的準則 197
15-6
盡量拒絕使用變參函數 198
【示例15-2】實現一個支持std::string的printf 199
15-7
為何降低函數的圈復雜度 202
15-7-1
提煉函數的方法 203
15-7-2
以明確函數取代參數 204
第16章
正確使用預處理
16-1
使用#define定義字面值和偽函數 206
16-1-1
簡單宏定義(字面值) 206
16-1-2
#define和const定義的恒值常量對比 207
16-1-3
帶參數的宏定義(偽函數) 208
16-1-4
帶參數的宏和函數的區別 208
16-1-5
引入宏的優點 209
16-1-6
宏定義和命名空間的關系 209
16-2
#define的使用陷阱 210
16-2-1
由操作符優先級引起的問題 210
16-2-2
使用宏定義,不允許參數發生變化 211
16-2-3
使用do{}while(false)將宏定義包含的多條表達式放到大括號中 211
16-2-4
關于...的使用 212
16-2-5
消除多余的分號 213
16-3
防止重復包含頭文件 214
【示例16-1】頭文件重復包含bug 214
16-3-1
解決方案之一:#ifndef方式 215
16-3-2
解決方案之二:#pragma once 215
16-3-3
#pragma once與 #ifndef的區別 216
16-4
assert的副作用 216
【示例16-2】斷言出現bug 217
16-5
多學一點,關于#和##的討論 219
16-5-1
#讓字符串巧妙用在宏定義中 219
16-5-2
##讓宏定義像函數一樣輸入參數 220
16-5-3
#與##使用的陷阱 221
第17章 非絕對禁止者,皆可使用
17-1
表示語句結束的分號的思考 222
17-2
goto語句真的一無是處嗎 224
17-2-1
觀點一:goto語句是有害的 225
【示例17-1】使用goto語句執行數組元素的交換順序 225
17-2-2
觀點二:某些情況下支持使用goto語句 226
17-3
條件操作符和逗號操作符 229
17-3-1
理解條件操作符并用好它 229
17-3-2
讓逗號操作符派上用場 230
17-4
和魔鬼數字說再見 230
17-4-1
魔鬼數字帶來的麻煩 230
17-4-2
給魔鬼數字起一個名字 231
17-5
關于循環語句的變化 232
17-5-1
新舊標準中for語句的變化 232
17-5-2
巧用do循環宏定義 233
17-5-3
循環語句的效率 234
第18章 程序員應該知道的指針技術
18-1
深刻理解void和void* 236
18-2
防微杜漸,拒絕野指針 239
18-2-1
野指針產生的原因 240
18-2-2
預防野指針的策略 241
18-3 “臭名昭著”的空指針到底是什么 242
18-3-1
怎樣在程序中獲得一個空指針 243
18-3-2
使用“if(p)”
展開全部
C/C++實踐進階之道:寫給程序員看的編程書 作者簡介
陳黎娟:610103197504161642目前就職于美國勝利通訊北京分公司,職位為Senior Firmware Engineer(高級固件工程師)。先后在SunPlus,SST等公司擔任工程師和高級架構工程師。在嵌入式系統、嵌入式接口和底層固件開發方面積累了豐富的經驗。