1. 當明知曉數值不可能為負時,選用無符號型別
2. 如果數值超過了int的表示範圍,選用long long
3. 執行浮點數運算選用double
4. 初始化不是賦值,初始化的含義是建立變數時賦予其乙個初始值,而賦值的含義是把物件的當前值擦除,而以乙個新值來替代
5. 內建型別的變數未被顯示初始化時,定義於任何函式體之外的變數被初始化為0,函式體內部的內建型別不被初始化
6. 分離式編譯,在變數名前新增關鍵字extern,而且不要顯示地初始化變數。在函式體內部,如果試圖初始化乙個由extern關鍵字標記的變數,將引發錯誤
7. c++識別符號由字母、數字和下劃線組成,其中必須以字母或下劃線開頭。識別符號沒有長度限制,但是對大小寫敏感
8. 在物件第一次被使用的地方定義它是一種好的選擇
9.
列表初始化:使用花括號初始化,當存在丟失資訊風險時編譯器將報錯,而使用()可以執行但可能發生資訊丟失
10.
引用:為物件起的別名,定義時必須初始化,不是物件,不可定義引用的引用
11. 指向某個物件,定義時無需賦值,本身就是物件,對指標使用解引用符*可訪問該物件
12.
初始化指標:建議用已定義物件或nullptr或0初始化所有指標,把任何int型變數(即使值為0)賦值給指標是錯誤的
13.
void*
14. 通過*的個數可以區分指標的級別,**表示指向指標的指標,以此類推
15. 指向指標的引用,int *p; int *&r=p; 從右向左有助於閱讀
16.
多檔案共享const:不管宣告還是定義都要新增關鍵字extern
17.
初始化對const的引用:允許任何表示式作為初始值,只要該表示式結果可以轉化為引用型別的臨時量物件
18. 常量只能用常量引用,引用型別必須一樣
19. 指向常量的指標,const指標 從右向左
20. 頂層const:表示指標本身是個常量,底層const:表示指標指的物件是乙個常量
21. 執行拷貝操作時,拷入拷出物件必須具有相同的底層const資格,或能夠強制轉換
22.
常量表示式:資料型別和初始值都需要是常量型別,值不會改變並在編譯過程就能得到計算結果
23.
constexpr
變數:一定是常量,必須用常量表示式(字面值型別,包括算術型別、引用、指標)或constexpr函式(足夠簡單編譯時可計算結果)初始化
24.
constexpr
:在編譯期可知 const:不可改變
25.
constexpr
26. constexpr int *p = 0; 相當於頂層const
27. 型別別名:(1).typedef double wages; (2). using a = double;
28.
指標、常量與型別別名:typedef char*pstring; const pstring cstr = 0;,與const char *cstr不等價,前者的cstr是指向char的常量指標,後者中cstr是指向常量char的指標
29.
型別說明符auto:讓編譯器通過初始值推算變數型別,並賦諸該值;忽略頂層const,保留底層const
30. decltype:選擇並返回運算元的資料型別。如果decltype使用的是乙個加上了一對括號的變數,則得到的結果就是該變數的型別;如果給變數加上了一層或多層括號,編譯器就會把它當成是乙個表示式。
31. 預處理器:在編譯之前執行一段程式,可以部分地改變我們所寫的程式。如:#include ,當預處理器看到#include標記時就會用指定的標頭檔案的內容代替#include
32. #define指令把乙個名字設定為預處理變數,#ifdef 當且僅當變數已定義時為真,#ifndef 當且僅當變數為定義時為真。一旦檢查結果為真,則執行後續操作直至遇到#endif指令為止。
變數和基本型別 C Primer學習筆記
1.linux下檢視main函式返回值 echo 2.endl是乙個特殊值,稱為操縱符 mainpulator 具有換行和重新整理與裝置相關緩衝區的作用。3.注釋對不可巢狀。4.可以用std cin value 讀取未知數目的輸入。windows使用control z作為結束符,linux使用con...
C Primer 02 變數和基本型別
1.c 算術型別 2.整型 一般,short 為半個機器字長,int為乙個,long為乙個或兩個。c 中將負數賦值給unsigned型別的值,是合法的,值為求模後的值。eg,1賦值給unsigned char,得 1對256求模,等於255。3.浮點型 float 型別 6位有效數字,double ...
c primer之變數與基本型別
如果表示式裡既有帶符號型別又有無符號型別,當帶符號型別取值為負時會出現異常結果。因為帶符號數會自動轉換成無符號數。unsigned u 10 int i 42 std cout endl 輸出 84 std cout endl 如果int佔32位,輸出4294967264引用與指標 引用並非物件,引...