C/C++學習指南(語法篇)

C/C++學習指南(語法篇)

《C/C++學習指南(語法篇)》是2016年1月清華大學出版社出版的圖書,作者是邵發。

基本介紹

  • 中文名:C/C++學習指南(語法篇)
  • 作者:邵發
  • 出版時間:2016年1月
  • 出版社:清華大學出版社
  • ISBN:9787302419891
  • 定價:49 元
內容簡介,圖書目錄,

內容簡介

這是一部C/C++語言的基礎語法教程,面向零基礎的初學者。C++是在C語言的基礎上做了部分修改和擴展的程式設計語言。本書的前半部分(1~19章)主要是C語言部分,而後半部分(20~31章)則是C++對C語言的擴展。
本書從實際工程需要出發,介紹一個C/C++從業人員所必須掌握的全部語法、核心概念和基本技能,消除了學習考試與實際工作之間的差距。書中不僅介紹函式、指針、結構體、類等基本語法,也介紹了傳值與傳地址、字元串、深拷貝與淺拷貝、動態創建對象、安全地使用指針、面向對象編程思想等核心概念。同時,書中還講解初級程式設計師所必須掌握的知識和技術,如單步調試、編碼規範、ANSI函式館、檔案操作、標準模板庫STL的使用。

圖書目錄

第1章開始學習C/C++
1.1開發平台
1.2第一個程式
1.2.1代碼解析
1.2.2在Windows XP環境下的問題
1.2.3常見的問題
1.3代碼與程式
1.4C語言和C++語言
第2章控制台輸入與輸出
2.1控制台輸出
2.1.1輸出整數
2.1.2用變數表示整數
2.1.3指定顯示寬度
2.1.4輸出小數
2.1.5用變數表示小數
2.1.6指定小數點後的位置
2.2控制台輸入
2.2.1輸入整數
2.2.2輸入小數
2.2.3一次輸入多個數
2.3注釋
2.4空白
2.5常見問題
2.6綜合例題
第3章變數與常量
3.1變數
3.1.1變數的定義
3.1.2變數的命名
3.1.3變數的賦值
3.2整型變數
3.2.1char / short / int類型
3.2.2unsigned無符號類型
3.2.3*bool布爾類型
3.2.4*enum枚舉類型
3.2.5*long long長整數類型
3.3浮點型變數
3.4數的進制表示
3.4.1數的十進制表示
3.4.2數的十六進制表示
3.4.3數的二進制表示
3.5變數與記憶體
3.5.1二進制存儲
3.5.2記憶體
3.5.3變數的大小
3.5.4變數在記憶體中的表示
3.5.5變數的地址
3.5.6理解變數的賦值
3.6const常量
3.7*字面常量
3.8常用類型的範圍
第4章數組
4.1引例
4.2數組的定義
4.2.1數組的命名
4.2.2數組的長度
4.3數組的基本使用方法
4.3.1數組的初始值
4.3.2訪問數組中的元素
4.3.3用sizeof取得數組的大小
4.4數組的記憶體視圖
4.5常見問題
4.6數組的使用實例
4.6.1實例1
4.6.2實例2
4.6.3實例3
4.6.4實例4
4.7多維數組
4.7.1二維問題的表示
4.7.2二維數組的定義
4.7.3二維數組的初始化
4.7.4二維數組的本質
第5章字元與字元數組
5.1字元是什麼
5.2字元的表示
5.3字元的顯示
5.4字元常量
5.5字元數組
5.5.1輸出字元串
5.5.2輸入字元串
5.5.3理解結束符的作用
5.5.4字元串的截斷
5.5.5常見問題
5.6轉義字元
5.6.1轉義字元的概念
5.6.2轉義字元的使用舉例
第6章表達式與操作符
6.1算術表達式
6.2賦值表達式
6.2.1左值
6.2.2理解賦值運算
6.2.3賦值與算術運算合併
6.2.4等號串連的寫法
6.4條件表達式
6.5邏輯表達式
6.6逗號表達式
6.7自增/自減操作符
6.8*位操作符
6.8.1按位表示
6.8.2位運算規則
6.8.3移位操作
6.8.4套用舉例
6.8.5例題: 把unsigned int整數轉為4個位元組
6.9類型的轉換與提升
6.10優先權與結合順序
6.10.1使用括弧
6.10.2常用的優先權
第7章語句
7.1什麼叫語句
7.2if語句
7.2.1使用複合語句
7.2.2最簡形式if
7.2.3完全形式if…else if…else if…else
7.3switch語句
7.3.1匹配
7.3.2跳轉與執行
7.3.3注意事項
7.4for語句
7.4.1引例
7.4.2使用for語句
7.4.3變形1: 省略初始表達式
7.4.4變形2: 省略第二個表達式
7.4.5變形3: 省略後置表達式
7.4.6變形4: 全部置空
7.4.7存在break語句
7.4.8存在continue語句
7.5while語句
7.5.1變形: 條件判斷內置
7.5.2例題
7.6do…while語句
7.7綜合例題1
7.8綜合例題2
第8章函式
8.1引例
8.2初步認識函式
8.3函式的定義
8.3.1函式名
8.3.2參數列表
8.3.3返回值類型
8.3.4函式的實現
8.3.5return語句的用法
8.4函式的調用
8.4.1函式的調用過程
8.4.2參數的順序
8.4.3函式的傳值調用
8.4.4忽略返回值
8.4.5直接使用返回值
8.5全局變數和局部變數
8.6變數的作用域與生命期
8.6.1變數的作用域
8.6.2變數的生命期
8.7變數名重名問題
8.8函式聲明與函式定義
8.8.1函式的聲明
8.8.2函式聲明相關問題
8.9main函式
8.10參數的隱式轉換
8.11*函式名重載
8.12*重載函式的匹配
8.12.1精確匹配
8.12.2模糊匹配
8.13*參數的默認值
8.14*內聯函式
8.15*函式的遞歸調用
第9章指針
9.1記憶體地址的表示
9.2指針的概念
9.3星號操作
9.4指針與數組
9.4.1指針加減法
9.4.2指針與數組的轉換
9.5指針作為函式的參數
9.6數組作為函式的參數
9.7指針作為函式的返回值
9.9void*型指針
9.10安全地使用指針
9.11*二重指針
9.12*二維數組與指針
9.12.1作為函式的參數
9.12.2二維數組與指針的轉換
第10章結構體
10.1引例
10.2結構體概述
10.3結構體的基本用法
10.3.1變數定義和初始化
10.3.2訪問結構體的成員
10.3.3定義結構體數組
10.4結構體的記憶體視圖
10.4.1結構體的成員
10.4.2對齊與填充
10.5結構體的更多用法
10.5.1結構體的賦值
10.5.2結構體指針
10.5.3作為函式的參數
10.5.4作為函式的返回值
10.5.5作為結構體的成員
10.6*結構體的特殊寫法
10.6.1沒有類型名
10.6.2函式內部的結構體類型
10.6.3緊湊的形式
10.6.4C語言中的struct定義
10.7結構體的命名
10.8傳值與傳地址
10.9*位欄位bitfield
10.10實例
第11章*聯合體
11.1概念
11.2進一步理解union
11.3實例
11.4union的替代方案
12.1引例
12.2動態分配記憶體
12.3記憶體管理器與堆
12.4對象的生命期
12.5實例1
12.6實例2
12.7常見問題
第13章鍊表
13.1概念
13.2鍊表的構造
13.2.1頭節點與末節點
13.2.2鍊表頭的作用
13.2.3常見問題
13.3有頭鍊表
13.3.1概念
13.3.2定義一個有頭鍊表
13.3.3添加一個節點
13.3.4有頭鍊表的遍歷
13.3.5按順序插入節點
13.3.6查找和刪除節點
13.3.7和無頭鍊表的比較
第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.8.1刪除字元
15.8.2插入字元
15.8.3插入和刪除的效率問題
15.9字元串的分割
15.10用數組還是用指針
第16章標準C函式館
16.1stdio.h
16.2math.h
16.3time.h
16.3.1time_t
16.3.2struct tm
16.3.3time取得系統當前時間
16.3.4localtime得到年月日時分秒
16.3.5mktime構造時間
16.4stdlib.h
16.5string.h
第17章檔案操作
17.1認識檔案
17.2保存數據
17.2.1fopen打開檔案
17.2.2fclose關閉檔案
17.2.3fwrite寫入數據
17.3讀取數據
17.4數據的存儲格式
17.5存儲格式: 按位元組存儲
17.5.1指針指向的對象
17.5.2RunLength Encoding存儲
17.6存儲格式: 文本化存儲
17.6.1fprintf按行格式化寫入
17.6.2fgets按行讀取
17.7檔案的隨機訪問
17.7.1fseek隨機訪問
17.7.2檔案位置指示器
17.7.3隨機訪問示例
17.7.4fseek的物理限制
17.7.5檔案被重複打開的情況
17.8*檔案打開模式
17.9*常見問題
第18章多檔案項目及編譯過程
18.1extern
18.1.1extern聲明全局函式
18.1.2extern聲明全局變數
18.1.3深入理解extern
18.2多檔案項目的生成
18.2.1第一階段: 編譯
18.2.2第二階段: 連結
18.2.3*用偽代碼表示整個過程
18.2.4全量編譯與增量編譯
18.3頭檔案#include指令
18.3.1為什麼需要頭檔案
18.3.2使用頭檔案
18.3.3#include指令的原理
18.3.4頭檔案的重複包含問題
18.3.5頭檔案里的內容
18.4宏定義#define指令
18.4.1#define一個數值
18.4.2#define一個算式
18.4.3幾個常見的宏定義
18.5條件編譯指令#if
18.5.1#if…#endif
18.5.2#ifdef…#endif
18.5.3解決頭檔案重複包含的問題
18.6*main函式的參數和返回值
18.6.1main函式的參數
18.6.2main函式的返回值
18.7*static的用法
18.7.1static修飾變數
18.7.2static修飾函式
第19章面向對象編程
19.1面向對象設計的過程
19.2實例演示
19.2.1需求與設計
19.2.2寫出代碼框架
19.2.3實現各個函式接口
19.3封裝
第20章類
20.1類和成員變數
20.1.1了解訪問修飾符
20.1.2訪問修飾符的用法
20.2類和成員函式
20.2.1訪問修飾符的限制
20.2.2了解this指針
20.2.3this指針的用法
20.3變數名字的覆蓋
20.4命名規範
20.4.1類名的命名規範
20.4.2成員函式的命名規範
20.4.3成員變數的命名規範
20.5類的封裝
20.6類的分離式寫法
20.7*const對象與const函式
20.7.1const成員函式
20.7.2const版本與非const版本
第21章構造與析構
21.1引例
21.2構造函式
21.2.1重載構造函式
21.2.2構造函式的調用
21.3析構函式
21.3.1析構函式的調用
21.3.2在析構函式中釋放資源
21.4自動生成的構造/析構函式
21.6構造函式的初始化列表
21.6.1參數名與成員變數名可以相同
21.6.2成員本身也是class類型
21.6.3混合使用兩種初始化方式
21.6.4必須使用初始化列表的情形
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.5.1父類指針指向子類對象
23.5.2虛函式virtual
23.5.3virtual析構函式
23.6繼承關係下的構造與析構
23.7*多重繼承
23.8*繼承函式與純虛類
23.9*以protected/private方式繼承
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.2.1參數類型
27.2.2加法的互換性
27.3賦值操作符=
27.3.1賦以不同的類型
27.3.2深拷貝
27.3.3相關問題及注意事項
27.3.4檢查項列表
27.4自增操作符++與自減操作符--
27.5關係操作符
27.6邏輯操作符
27.7類型轉換操作符()
27.8元素操作符[]
27.9輸入輸出操作符>>與<<
27.10操作符new與delete
27.11小結
第28章內部類和名字空間
28.1內部類
28.1.1內部類的語法
28.1.2內部類和普通類的區別
28.1.3內部類的用途
28.1.4內部類的分離式寫法
28.1.5內部enum類型
28.2名字空間
28.2.1名字空間的定義
28.2.2分離式寫法
28.2.3using語句: 解除前綴
28.2.4名字空間裡的其他類型
28.2.5名字空間的套用場景
第29章模板
29.1函式模板
29.2類模板
29.3模板參數
29.4實例
30.1一般使用方法
30.2向量vector
30.2.1at/front/back
30.2.2push_back/pop_back/resize/clear
30.2.3iterator/const_iterator
30.2.4insert/erase
30.3list
30.3.1push_back/pop_back/push_front/pop_front
30.3.2size/clear
30.3.3front/back
30.3.4iterator
30.3.5insert/erase
30.4string
30.4.1append/clear
30.4.2size/capacity/resize/clear/length
30.4.3at
30.4.4字元串比較
30.4.5字元串查找
30.4.6substr
30.4.7insert/replace
30.4.8string作為函式參數
30.5map
30.5.1使用[]插入數據
30.5.2使用insert插入數據
30.5.3查找
30.5.4遍厲
30.5.5刪除
30.6stack
30.7queue
第31章異常
31.1一個例子
31.1.1throw
31.1.2try…catch
31.2try的用法
31.3catch的用法
31.3.1匹配所有類型
31.3.2異常必須被捕獲
31.4throw的用法
31.5常見問題
31.5.1異常與錯誤的區別
31.5.2不在構造函式中拋出異常
31.5.3不在析構函式中拋出異常
31.5.4關於finally
附錄A用VC2008創建項目
附錄B有符號整數與無符號整數
附錄C枚舉類型
附錄DVC2008調試方法
附錄EVS2008常見問題匯總
附錄F字面常量
附錄GASCII碼錶
附錄H位欄位
附錄Itypedef的用法
附錄J編碼規範
附錄KC++與C語言的區別
附錄L二進制、十進制與十六進制

相關詞條

熱門詞條

聯絡我們