産品特色
編輯推薦
資深工程師編寫,講述核心的編程問題,規避可能遇到的誤區!
配套視頻(約100集)、在綫題庫(含答案解析)和討論區,提供充分的示例源碼!
主次分明,前後有序,循序漸進,娓娓道來;C/C++學習指南,讓編程變得簡單!
本書的特色是配套瞭視頻教程、在綫題庫和討論區。實際上,紙質教材隻是整個教學體係的一部分。在本書編寫過程中,已經吸收瞭上韆位讀者的意見反饋,並總結瞭大多數讀者可能遇到的問題,其具體特點在“前言”部分有詳細介紹。讀者隻需要對照視頻,按順序學習,多加模仿與練習,必能取得良好的學習效果。
內容簡介
這是一部C/C++語言的基礎語法教程,麵嚮零基礎的初學者。C++是在C語言的基礎上做瞭部分修改和擴展的程序設計語言。本書的前半部分(1~19章)主要是C語言部分,而後半部分(20~31章)則是C++對C語言的擴展。本書從實際工程需要齣發,介紹一個C/C++從業人員所必須掌握的全部語法、核心概念和基本技能,消除瞭學習考試與實際工作之間的差距。書中不僅介紹函數、指針、結構體、類等基本語法,也介紹瞭傳值與傳地址、字符串、深拷貝與淺拷貝、動態創建對象、安全地使用指針、麵嚮對象編程思想等核心概念。同時,書中還講解初級程序員所必須掌握的知識和技術,如單步調試、編碼規範、ANSI函數庫、文件操作、標準模闆庫STL的使用。本書配備免費的全套視頻教程、在綫題庫及解析,可結閤紙質教材同步使用,書中的近三百個示例的源碼,以及所有相關資料均可在http://afanihao.cn上獲取。
作者簡介
邵發,畢業於清華大學,從事軟件開發工作十餘年,擁有C/C++/Java/Linux/DVB/Android/J2EE/Audio&Video; Codec等多個領域的技術和項目經驗。自2015年起緻力於C/C++/Java領域的基礎教育,著有“我的編程課堂”係列圖書和“C/C++學習指南”、“Java學習指南”係列視頻教程,希望藉此體係為國內的編程愛好者提供全新、高效、有趣的學習體驗。
目錄
第1章開始學習C/C++
1.1開發平颱
1.2第一個程序
1.3代碼與程序
1.4C語言和C++語言
第2章控製颱輸入與輸齣
2.1控製颱輸齣
2.2控製颱輸入
2.3注釋
2.4空白
2.5常見問題
2.6綜閤例題
第3章變量與常量
3.1變量
3.2整型變量
3.3浮點型變量
3.4數的進製錶示
3.5變量與內存
3.6const常量
3.7*字麵常量
3.8常用類型的範圍
第4章數組
4.1引例
4.2數組的定義
4.3數組的基本使用方法
4.4數組的內存視圖
4.5常見問題
4.6數組的使用實例
4.7多維數組
第5章字符與字符數組
5.1字符是什麼
5.2字符的錶示
5.3字符的顯示
5.4字符常量
5.5字符數組
5.6轉義字符
第6章錶達式與操作符
6.1算術錶達式
6.2賦值錶達式
6.3關係錶達式
6.4條件錶達式
6.5邏輯錶達式
6.6逗號錶達式
6.7自增/自減操作符
6.8*位操作符
6.9類型的轉換與提升
6.10優先級與結閤順序
第7章語句
7.1什麼叫語句
7.2if語句
7.3switch語句
7.4for語句
7.5while語句
7.6do…while語句
7.7綜閤例題1
7.8綜閤例題2
第8章函數
8.1引例
8.2初步認識函數
8.3函數的定義
8.4函數的調用
8.5全局變量和局部變量
8.6變量的作用域與生命期
8.7變量名重名問題
8.8函數聲明與函數定義
8.9main函數
8.10參數的隱式轉換
8.11*函數名重載
8.12*重載函數的匹配
8.13*參數的默認值
8.14*內聯函數
8.15*函數的遞歸調用
第9章指針
9.1內存地址的錶示
9.2指針的概念
9.3星號操作
9.4指針與數組
9.5指針作為函數的參數
9.6數組作為函數的參數
9.7指針作為函數的返迴值
9.8const指針
9.9void*型指針
9.10安全地使用指針
9.11*二重指針
9.12*二維數組與指針
第10章結構體
10.1引例
10.2結構體概述
10.3結構體的基本用法
10.4結構體的內存視圖
10.5結構體的更多用法
10.6*結構體的特殊寫法
10.7結構體的命名
10.8傳值與傳地址
10.9*位字段bit�瞗ield
10.10實例
第11章*聯閤體
11.1概念
11.2進一步理解union
11.3實例
11.4union的替代方案
第12章動態分配內存
12.1引例
12.2動態分配內存
12.3內存管理器與堆
12.4對象的生命期
12.5實例1
12.6實例2
12.7常見問題
第13章鏈錶
13.1概念
13.2鏈錶的構造
13.3有頭鏈錶
第14章引用
14.1引用的定義
14.2與指針的區彆
14.3簡單的例子
14.4作為函數的參數
14.5作為函數的返迴值
14.6const引用
第15章字符串
15.1字符串的三種形式
15.2字符串常量的多行錶示
15.3字符串與普通數據
15.4字符串的遍曆
15.5字符串長度
15.6字符串復製
15.7字符串比較
15.8字符串插入和刪除
15.9字符串的分割
15.10用數組還是用指針
第16章標準C函數庫
第17章文件操作
17.1認識文件
17.2保存數據
17.3讀取數據
17.4數據的存儲格式
17.5存儲格式: 按字節存儲
17.6存儲格式: 文本化存儲
17.7文件的隨機訪問
17.8*文件打開模式
17.9*常見問題
第18章多文件項目及編譯過程
18.1extern
18.2多文件項目的生成
18.3頭文件#include指令
18.4宏定義#define指令
18.5條件編譯指令#if
18.6*main函數的參數和返迴值
18.7*static的用法
第19章麵嚮對象編程
19.1麵嚮對象設計的過程
19.2實例演示
19.3封裝
第20章類
20.1類和成員變量
20.2類和成員函數
20.3變量名字的覆蓋
20.4命名規範
20.5類的封裝
20.6類的分離式寫法
20.7*const對象與const函數
第21章構造與析構
21.1引例
21.2構造函數
21.3析構函數
21.4自動生成的構造/析構函數
21.5默認構造函數
21.6構造函數的初始化列錶
21.7構造與析構的順序
21.8分離式寫法
21.9*無名對象
21.10*構造函數與類型轉換
第22章動態創建對象
22.1迴顧malloc/free
22.2用new/delete創建/銷毀對象
22.3new/delete與malloc/free的區彆
22.4為new指定初始化參數
22.5默認構造函數的必要性
22.6注意事項
第23章繼承
23.1引例
23.2繼承的概念
23.3訪問修飾符protected
23.4成員函數的重寫
23.5虛擬繼承
23.6繼承關係下的構造與析構
23.7*多重繼承
23.8*繼承函數與純虛類
23.9*以protected/private方式繼承
第24章拷貝構造函數
24.1定義
24.2拷貝構造函數的調用
24.3默認的拷貝構造函數
24.4定義拷貝構造函數
24.5深度拷貝
第25章靜態成員
25.1static定義全局變量
25.2static定義全局函數
25.3與普通成員的區彆
25.4static語法的特點
25.5應用1: 實例計數
25.6應用2: 單例模式
第26章朋友成員
26.1引例
26.2類的朋友
26.3friend的語法
26.4實例
26.5進一步討論
第27章重載操作符
27.1引例
27.2算術操作符
27.3賦值操作符=
27.4自增操作符++與自減操作符--
27.5關係操作符
27.6邏輯操作符
27.7類型轉換操作符()
27.8元素操作符[]
27.9輸入輸齣操作符>>與<<
27.10操作符new與delete
27.11小結
第28章內部類和名字空間
28.1內部類
28.2名字空間
第29章模闆
29.1函數模闆
29.2類模闆
29.3模闆參數
29.4實例
第30章標準模闆庫
30.1一般使用方法
30.2嚮量vector
30.3list
30.4string
30.5map
30.6stack
30.7queue
第31章異常
31.1一個例子
31.2try的用法
31.3catch的用法
31.4throw的用法
31.5常見問題
附錄A用VC2008創建項目
附錄B有符號整數與無符號整數
附錄C枚舉類型
附錄DVC2008調試方法
附錄EVS2008常見問題匯總
附錄F字麵常量
附錄GASCII碼錶
附錄H位字段
附錄Itypedef的用法
附錄J編碼規範
附錄KC++與C語言的區彆
附錄L二進製、十進製與十六進製
前言/序言
作為一個有十餘年軟件開發背景的從業人員,作者在招聘麵試中發現,現在的絕大多數應聘者往往缺少基本的語法基礎和實際的動手能力,更不用說對核心概念的理解瞭。這似乎錶明現有的教材或教育方法,與實際的工作要求之間存在著比較嚴重的脫節。
因此,作者希望創建一套全新的、完整的、綜閤性的教學體係,讓學員能夠打下牢固的語法基礎,建立對核心概念的正確認識,並掌握基本的動手能力。這套體係包含紙質教程、視頻教程、在綫題庫、進階教程4大要素。
本書是目標體係的一個組成部分,它也可以獨立地使用。就這部紙質教材的特點來說,有以下幾點。
1. 主次分明
C/C++的語法繁多,有些語法是過時的,有些語法很難但工作中並不常用。為瞭避免給初學者帶來不必要的乾擾,書中對非重點的章節采用星號標注,並顯式地說明這個章節是不重要的、或者是過時的、或者是第一遍學習的時候可以跳過的。
2. 引例
在開始講解每一章之前,通常會有一個引例,其作用是引起讀者對某個背景問題的思考。引例描述瞭一個語法産生的背景,使讀者自然而然地理解本章引入的新概念。
3. 鋪墊與銜接
本書各章節前後邏輯相承,一環連接一環。讀者隻要按順序學習,就可以很容易地從最簡單的概念過渡到復雜的概念。最終的效果是,讀者會感覺整個學習過程中沒有太難的東西。值得強調的是,如果讀者不按順序學習,則學習難度會加倍。例如,如果讀者不學習第3、4、5章,則難以讀懂第8、9、10章。反之,如果按順序學習則可以不知不覺地通過。
本書在編排上注重銜接。例如,第19章起承上啓下的作用,使讀者可以很容易地從C語言的struct過渡到C++的class。
4. 動手能力
第16、17章中介紹瞭標準C函數庫的使用,第30章介紹瞭標準模闆庫的使用,它們都是實際工作中所必須掌握、常用而且重要的知識。
同時,在正文及附錄中加強對讀者動手能力的培訓,強調良好的編碼規範,強調自己動手建立項目,並掌握調試技術。
5. 核心概念
C/C++中的核心概念包括“傳值與傳地址”“字符串”“深拷貝與淺拷貝”“動態創建對象”“安全地使用指針”“麵嚮對象編程思想”等。實際上,如果不深刻理解這些核心概念,就無法寫齣正確的程序。所以,本書在閤適的位置講解瞭這些概念,使得讀者不必再搜尋彆的輔導教材,就可以在學習基本語法的同時掌握這些核心概念。
6. 示例豐富
本書中給齣瞭近三百個示例,為瞭保證示例的正確性,每個示例都經過作者驗證,並且可以在網站(http://afanihao.cn,可掃描二維碼)上獲取完整的示例源碼。
7. 豐富的配套資源
1) 在綫題庫
使用在綫題庫的方式提供習題,習題按四星級標注,一星為基本練習,三星最難,四星為工業級應用題。每題配備提示、答案或解析,使得讀者可以檢驗自己的思路是否閤理。
2) 配套視頻
配套100集免費視頻教程,令學習更加高效和輕鬆。
3) 源代碼下載
近三百個示例源代碼免費共享,輕鬆編寫程序。
4) 進階學習
讀者在學習完本書的基本語法之後,可以選擇繼續學習進階類教程,使自己具備一個軟件開發從業人員的各項基本素質。
5) 答疑與討論區
以在綫的形式提供答疑與討論區,具體信息請在http://afanihao.cn上獲取。
感謝我的父母、姐姐、哥哥,我的愛人和孩子,感謝他們對我的全力支持。
感謝邵動、邵字紅、石廣文、李新華、李特梅、薑滿如、瀋鋒平、周建東、鄭宇、楊波參與瞭部分編寫工作。
感謝我的老師,張明鳳、王善良、周國林、辛燕君、王守玉、申文甲、王羽、王殿兵、郭全、晉宗華、鬍振仙、鄒明光、顧秉林、硃小梅、李淑琴、張仰森等在我成長之路上對我的栽培。
感謝我的朋友,艾本仁、白建峰、陳剛、陳希、丁將、符汪洋、顧元凱、葛國鋒、關正偉、劉星、劉慶生、羅曉宇、裴勇、裴郊區、王浩、邵安馨、石天澤、王靜競、楊浩傑、楊猛、楊禹等給我的幫助。
感謝網友,塗兆昊(神奇的人魚)、李若滕、伊文斯、張鬆華(non)、李顯發(李小明)、李睿意(lry)、王浩然(連心綫)、李顯(江南暮春)、盧阿旺(authur)、黃文海(ggev)、神奇海螺、黑夜的憂傷、李澤銘(角逐新夢想)、蔡萬成(by)、張強(玄白)、吳霄(stra)、崔祥祥、鄧誌光等在本教程開發過程中所起的作用。
邵發
2015年8月於北七傢
C/C++學習指南(語法篇) 下載 mobi epub pdf txt 電子書 格式