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

C++ Primer Plus 第六版學習筆記(一):基礎語法、類型、字串與結構體精華

     編輯:C++ 入門

C++ Primer Plus 第六版學習筆記(一):基礎語法、類型、字串與結構體精華

本筆記整理自《C++ Primer Plus (6th Edition)》前四章核心知識點,適合快速回顧 C++ 基礎。

第 1 章:起步

  • 預處理器:#include <iostream> 引入標準庫,C++ 標頭無 .h 後綴(C 標頭轉為 cxxx 形式,如 <cmath>)。
  • 命名空間:using namespace std; 或 using std::cout; 避免污染全域。
  • main 返回值:0 表成功,非零表失敗,回傳給作業系統。

第 2 章:基本類型與變量

  • 整型寬度:short ≥ 16bit, int ≥ short, long ≥ 32bit, long long ≥ 64bit。sizeof(int) 視平台而定。
  • 初始化語法:
    • C 風格:int a = 1;
    • C++ 直接初始化:int b(2);
    • 列表初始化(C++11):int c{3}; 禁止縮窄轉換。
  • 字元類型:wchar_t(寬字元)、char16_t/char32_t(C++11,UTF-16/32),字面值前綴 L/u/U。
  • bool:0 → false,非零 → true。
  • const:編譯期常量,建議大寫命名,定義時必須初始化。
  • 浮點數:float(≥32bit), double(≥48bit), long double。字面值預設 double,f 後綴指定 float。
  • 強制轉型:static_cast<T>(expr) 比 C 風格 (T)expr 更安全。
  • auto:C++11 類型推導,auto x = 100; 推導為 int。

第 3 章:陣列、字串與結構體

  • 陣列:int a[5]; 下標不檢查越界。sizeof(a) 為整個陣列位元組數(僅限定義作用域)。
  • C 風格字串:以 '\0' 結尾,strlen 不含結尾符。cin >> str 遇空白停止;getline 讀整行。
  • string 類:動態調整大小,支援 +、==、size(),比字元陣列安全。
  • 原始字串字面值:R"(...) 內不轉義,自定界符 R"delim(...)delim"。
  • 結構體:
    • 定義:struct Man { char name[20]; double weight; int age; };
    • 初始化:Man mike = {"Mike", 56.2, 22};(C++11 列表初始化)
    • 位欄位:unsigned int x : 4; bool y : 1; 節省空間。
  • 共用體:同一記憶體存不同類型,長度取最大成員。匿名共用體成員直接可見。
  • 枚舉:enum Spectrum {red, orange, yellow}; 隱含 int,可指定值,取值範圍為能容納最大值的最小 2 的冪區間。

第 4 章:指標、記憶體管理與容器

  • 指標基礎:& 取址,* 解引用。使用前必須初始化。
  • 動態記憶體:new int; new int[10]; delete ptr; delete[] arr;。new 失敗拋 bad_alloc。
  • 指標運算:ptr+1 前進一個元素大小(非位元組)。陣列名在多數語境下退化為首元素指標(右值)。
  • 儲存期:自動(棧)、靜態(全域/靜態區)、動態(堆/自由存儲區)。
  • vector:#include <vector> vector<int> v(10); 動態陣列,自動管理記憶體,C++11 支援列表初始化。
  • array:#include <array> array<int,5> arr; 固定大小、棧分配、效率同陣列但更安全。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved