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

C++ Primer 學習總結(一):變量與基本類型

     編輯:關於C++

核心筆記

1. C++98 與 C++11 中 printf 格式差異

  • %lf 在 C++98 表示 double,C++11 表示 long double。
  • C++11 下 double 用 %f 輸出;long double 用 %Lf。
  • scanf 不變:float 用 %f,double 用 %lf。

2. 默認初始化規則

類型全局/靜態局部(非靜態)
內置類型0未定義(垃圾值)
類類型調用默認構造函數調用默認構造函數

若類無默認構造函數或被刪除,定義對象不給初值會編譯錯誤。

3. 合成默認構造函數行為

  • 成員為類對象 → 調用其默認構造函數。
  • 成員為內置類型 → 執行默認初始化(全局 0,局部未定義)。

4. 指向指針的引用定義

int i = 42;
int *p = &i;
int *&r = p; // r 是指向 int* 的引用

5. const 變量的跨文件共享

  • 預設 const 僅在當前編譯單元可見(內部鏈接)。
  • 跨文件需在一個文件 extern const int a = 100; 定義,其他文件 extern const int a; 聲明。

6. auto vs decltype

7. 範例驗證

const int ci = 42;
auto a = ci;        // int
decltype(ci) c = ci; // const int
int &r = i;
auto b = r;         // int
decltype(r) d = r;  // int&

理解這些細節對寫出正確、可移植的 C++ 代碼至關重要。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
特性autodecltype
頂層 const忽略保留
引用類型推導為非引用推導為引用
decltype((expr))—若 expr 為左值,推導為引用