首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

《C++ Primer》基礎語言部分筆記:第 1-8 章核心知識點總結

     編輯:C++ 入門

第 1 章:快速入門

  • main 返回 int,0 表示成功。
  • I/O 流:std::cin/cout/cerr/clog,運算符 <</>> 返回流引用,支持鏈式調用。
  • 註釋:// 單行,/* */ 多行(不可嵌套)。
  • 控制流:while/for/if-else,範圍 for (C++11) for (auto& x : v)。
  • 類初探:成員函數、this 指針、構造函數初始化列表。

第 2 章:變量與基本類型

  • 類型選擇:int 通常 4 字節足夠,double 優於 float。char 符號性實現定義,僅用於字符。
  • 字面值:L'a' 寬字符,u8"..." UTF-8 字符串,\ 換行連接字符串字面值。
  • 變量定義 vs 聲明:extern int i; 聲明,int i=0; 定義(分配存儲)。
  • const:默認內部鏈接,跨文件需 extern const。引用:const int& r = 10; 綁定字面值/臨時量。
  • enum class (C++11) 強類型枚舉,避免隱式轉換與名稱污染。
  • 頭文件護衛:#ifndef HDR_H #define HDR_H ... #endif 或 #pragma once。

第 3 章:標準庫類型

  • std::string:size(), empty(), substr(pos,len), find/rfind, c_str()。下標 0-based,s[i] 無邊界檢查,at(i) 拋出異常。
  • std::vector:動態數組,push_back/back/pop_back, resize/reserve, 迭代器 begin/end,const_iterator vs const iterator 區別。
  • std::bitset:固定大小位集合,構造自 unsigned long/string,支持位運算 & | ^ ~ << >>。

第 4 章:數組與指針

  • 數組維度必須為常量表達式。int a[10]; 默認初始化規則同變量。
  • 指針:nullptr (C++11) 替代 0/NULL。void* 通用指針,不可解引用/算術。
  • 動態內存:new int[10]() 值初始化為 0,delete[] 釋放數組。智能指針 unique_ptr/shared_ptr (C++11) 自動管理。
  • C 風格字符串:以 \0 結尾,strlen/strcpy/strcmp,string::c_str() 獲取。

第 5 章:表達式

  • 前置 ++i 返回引用,後置 i++ 返回舊值副本,前置效率略高。
  • 條件運算符 cond ? a : b 優先級極低,嵌套需加括號。
  • sizeof 編譯期常量,不求值運算元(sizeof(i++) 不會遞增)。
  • 運算符優先級:賦值 < 邏輯 < 比較 < 算術 < 一元 < 後置 < 成員訪問。

第 6 章:語句

  • 作用域:塊語句 {} 形成新作用域,控制語句初始化變量僅在其子語句可見。
  • switch:case 標簽為整型常量表達式,break 防止貫穿,default 兜底。不可跨越變量初始化跳轉(需用 {} 包裹)。
  • 調試宏:#ifdef DEBUG ... #endif,編譯時 -DDEBUG 控制。

第 7 章:函數

  • 參數傳遞:值傳遞(拷貝)、引用傳遞(別名)、const 引用(避免拷貝且只讀)。
  • 默認實參:僅在聲明指定,從右向左連續。
  • 內聯函數 inline:建議編譯器展開,適用短小熱點函數,定義放頭文件。
  • 重載:同名不同參數列表,const 可區分重載,返回類型不能。
  • 函數指針:bool (*pf)(int,int*);,typedef 簡化,可作參數/返回值(返回需用指針/別名)。

第 8 章:IO 庫

  • 流狀態:good()/bad()/fail()/eof(),clear() 重置,rdstate() 獲取位掩碼。
  • 緩沖區刷新:flush、endl(換行+刷新)、ends(插 \0+刷新)、unitbuf(每次輸出刷新)。
  • 文件流:ifstream/ofstream/fstream,open/close/is_open(),循環讀多文件必須 clear() 重置狀態。
  • stringstream:ostringstream 格式化輸出字符串,istringstream 解析字符串,替代 sprintf/sscanf 更安全。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved