C++ Primer 知識點總結

第一章

1.1 編寫簡單的C++程序

每個C++程序都包含一個或多個函數,而且必須有一個命名爲main。main函數是唯一被操作系統顯示調用的函數。
返回0說明程序成功執行完畢。
定義函數必須指定4個元素: 返回類型,函數名,形參表和函數體。
C++中多數語句以分號作爲結束標記。
IDE 集成開發環境 Integrated Development Environment
程序員文件稱爲源文件。源文件的名字由文件名和文件後綴兩部分。

1.1 輸入輸出

C++並沒有直接定義進行輸入或輸出(IO)的語句,這種功能是有標準庫提供的。
經常使用的是處理格式化輸入和輸出的 iostream 庫。
iostream 庫的基礎是兩種命名爲istream 和 ostream的類型,分別表示輸入流和輸出流。
流是指要從某種IO設備上讀入或寫出的字符序列。
術語“流”試圖說明字符是隨着時間順序生成或消耗的。
endl是一個特殊值,稱爲操縱符(manipulator),將他寫入輸出流時,具有輸出換行的效果。
並刷新與設備相關聯的緩衝區。通過刷新緩衝區,用戶可以立即看到寫入到流中的輸出。
忘記刷新可能會造成輸出停留在緩衝區。

使用命名空間,程序員可以避免由於無意中使用了與庫中所定義的名字相同的名字而引致衝突。
所以當使用標準庫中的名字時,必須顯式地表達出使用的是某個命名空間下的名字。

空格符不允許出現在預處理指示中。

1.3 註釋

單行註釋  //
成對註釋 /*  */
任何允許有製表符、空格或換行符的地方都允許放註釋對。
註釋對不可以嵌套。

1.4 控制結構 

C++中的語句是順序執行的。
+=  複合複製操作符。
++val 前自增操作符

while 語句

while (condition) while_body_statement;
while 通過測試condition 和執行相關的while_body_statement來重複執行,直到condition爲假。

for 語句

for語句提供迭代執行的控制語句,通常用於步進遍歷數據結構或對一個計算重複固定次數。
for ( 初始化語句 ; 條件  ; 表達式 ) for_body_statement ;
僅當for語句體執行完後才執行表達式。。執行完表達式後,for語句重新測試條件。

if 語句

if語句支持條件執行。

1.5 類的簡介

C++最基本的工具: 類。
C++中通過定義類來定義自己的數據結構。
C++設計的主要焦點就是使所定義的類 類型(class type)的行爲可以像內置類型一樣自然。

標準庫的頭文件用尖括號 <> 括起來, 非標準庫的頭文件用雙引號“ ” 括起來。
成員函數(member function)是由類定義的函數,有時稱爲類方法(method)。
成員函數只定義一次,但被視爲每個對象的成員。
調用成員函數時,通過點操作符(.)來指定函數要操作的對象。
與其他大多數操作符不同,點操作符(“.”)的右操作數不是對象或值,而是成員函數的名字。
通常使用成員函數作爲點操作符的右操作數來調用函數。執行成員函數和執行其他函數相似:要調用函數,可將 調用操作符(“ ()”)放在函數名之後。
調用操作符 是一對圓括號。

小結:
block 塊  :花括號(curly brace)括起來的語句序列;
buffer 緩衝區: 一段用來存放數據的存儲區域。IO設備經常把輸入或輸出存儲到緩衝區,並獨立於程序自動對緩衝區進行讀寫。輸出緩衝區通常必須顯示刷新以強制輸出緩衝區內容。
data structure 數據結構: 數據及數據上操作的邏輯組合。
expression 表達式: 最小的計算單元。
function 函數: 有名字的計算單元。
statement 語句: C++中最小的獨立單元。一般以分號結束。
string literal 字符串字面值 : 以雙引號括起來的字符序列。
:: operator  作用域操作符: 用於在命名空間中訪問名字。


第二章 變量和基本類型

類型是所有程序的基礎。
類型告訴我們數據代表什麼意思以及可以對數據執行哪些操作。
也就是說類型確定了數據和操作在程序中的意義。
C++中對類型的支持是非常廣泛的:C++ 語言本身定義了一組基本類型和修改已有類型的方法,還提供了一組特徵用於自定義類型。

2.1 基本內置類型

算術類型: 整數,浮點數,單個字符和布爾值;
特殊類型:void。
一般用 表示該類型的二進制位數(bit)來表示其存儲空間。


整型

表示整數,字符和布爾值的算術類型合稱爲整型(integral type)。

計算機以 位序列 存儲數據,每一位存儲0或1.
在 位(bit) 這一級上,存儲器是沒有結構和意義的;讓存儲具有結構的最基本的方法使用塊(chunk)處理存儲。塊的位數一般是2的冪。

一般 short類型爲半個機器長,int類型爲一個機器長,而long類型爲一個或兩個機器長,在32位機器中int和long字長相同。
除了bool類型外,整型可以是帶符號的(signed)和無符號的(unsigned)。 
整型 int、short和long都默認帶符號型。

無符號型中,所有的位都表示數值。 8位的可以取值 0~255;
帶符號型中主要看編譯器如何決定。一般常用的策略是用其中一個位作爲符號位。這樣8位的就可以取值 -128~127.

整型賦值溢出:
 --------unsigned 編譯器必須調整越界值使其滿足要求,會取模後取所得值。
            如 unsigned char 取值 0~255, 336 實際賦值 336%256 = 80;
            而 將負數賦值給unsigned  永遠是超出範圍,有些語言定義爲非法,但C++ 中合法 ,例如 -1 賦給 8位的char,那麼結果是 -1%256 = 255.

---------signed 由編譯器實際決定。一般與unsigned 一樣,取模後的值,但不一定全都是這樣。


浮點型

單精度浮點數: float  一般32  bit, 只能保證6位有效數字
雙精度浮點數:double 一般 64 bit ,至少保證10位有效數字
擴展精度浮點數: long double 一般96 或 128bit

2.2 字面值常量 literal constant

像 42 這樣的值,在程序中被當做字面值常量。字面值指的是隻能用它的值來稱呼它,常量指的是它的值不能修改。
只有內置類型存在字面值,沒有類類型的字面值,也沒有任何標準庫類型的字面值。

字面值整數常量

可以有3中進制來定義, 十進制,八進制和十六進制。
20      // decimal  十進制
024   //octal  八進制,以0(零)開頭
0x14 //hexadecimal  十六進制, 以0x(零 x)開頭
默認爲int 或 long類型,一般是int,看數值決定。
顯示定義爲long 使用 L: 20L 。 不使用小寫的l,容易與1混淆。
類似的,顯示定義爲unsigned 使用 u/U。 20u   20UL   8Lu

浮點數字面值規則

通常用十進制或者科學計數法(用E / e)來表示浮點字面值常量。默認爲double型。 用F/f 表示單精度, 用L 表示擴展精度。
3.14159F           001f          12.345L               0.
3.14159E0f      1E-3F         1.2345E1L         0e0

布爾字面值和字符字面值

布爾型: true  、 false
可打印的字符型字面值通常用一對單引號來定義:  ‘a’, ‘2’,‘,’ ,‘ ’。 最後一個表示空格

非打印字符的轉義序列

有些字符是不可以打印的,實際上就是不可顯示的字符,例如退格或者控制符,以及一些在語言中有特殊意義的字符,例如單引號,雙引號,反斜線。
不可打印字符和特殊字符用 轉義字符來書寫,轉義字符以反斜線符號開始
 












發佈了34 篇原創文章 · 獲贊 25 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章