C primer plus 第4章 復合型別

2021-06-13 17:31:45 字數 1093 閱讀 2422

1. 陣列初始化

2. 字串

兩種方式:c-風格字串:以\0結尾;string類庫

單引號表示字元常量 ,'a'是字串編碼的簡寫, char a = 'a',是正確的。

但是「a」表示的是兩個字元a和\0組成的字串,實際上「a」表示的是字串所在的記憶體位址,因此char a = 「a」是非法的

1) cin.getline(arrayname, length); 讀取一行,遇到換行符或讀取超過length-1時停止。

2) cin.get(arrayname,length);不丟棄換行符,將換行符留在輸入佇列中,因此連續呼叫兩次get()時,第二次會因為看到的第乙個字元就是換行符而停止。cin.get()可以讀取下乙個字元(包括換行符),因此可以用它來處理換行符。

可以使用cin.get(arrayname,length).get();

3) get()讀取空行後將設定失效位failbit,接下來的輸入將被阻斷,要使用cin.clear()命令來恢復輸入

cout <<"your name:\n";

int year;

cin>>year;

cout << "food:\n";

cin.get(food, arrsize).get();

cin讀取year後,將換行符留在了輸入佇列的末尾,接下來cin.get的時候第乙個接收到的就是換行符,將認為是乙個空行。需要在接下來的讀取之前丟棄換行符

(cin>>year).get( )或(cin>>year).get( ch );

3. 結構

4. 共用體

只能同時儲存一種型別,長度為其最大成員的長度。

5. 列舉

6. 指標和自由儲存空間

int * p;

p = (int *)0xb8000000;

7. c++管理記憶體的方式

自動儲存、靜態儲存和動態儲存

函式內部定義的常規變數,在所屬的函式呼叫時自動產生,該函式結束時消亡

在函式外面定義或者宣告變數時使用static

new和delete管理了乙個記憶體池,叫做自動儲存空間,允許在乙個函式中分配記憶體,在另乙個函式中釋放它

《C Primer Plus》第4章 學習筆記

陣列 結構和指標是c 的3中符合型別。陣列可以在乙個資料物件中儲存多個同種型別的值。通過使用索引或下標,可以訪問陣列中各個元素。結構可以將多個不同型別的值儲存在同乙個資料物件中,可以使用成員關係運算子 來訪問其中的成員。使用結構的第一步是建立結構模板,它定義結構儲存了那些成員。模板的名稱將稱為新型別...

C Primer Plus 第11章 筆記

1 如果字串字面量之間沒有間隔,或者用空白字元分隔,c會將其視為串聯起來的字串字面量。2 用標準的陣列初始化模式給字串初始化時,末尾一定要加上 0 不然就不是乙個字串,而是乙個字元陣列。讓編譯器計算陣列的大小只能用在初始化時。4 const char ar1 something is pointin...

c primer plus 第8章 函式探幽

c 擴 展 了 c 語 言 的 函 數 功 能 通 過 將 inline 關鍵 字 用 於 函 數 定 義 並 在 首 次 調 用 該 函 數 前 提 供 其 函 數 定 義 可 以 使 得c 艹 編 譯 器 將 該 函 數 視 為 內 聯 函 數 也 就 是 說 編 譯 器 不 是 讓 程 序 跳...