C 學習筆記(3,4章)

2021-10-02 23:22:50 字數 1435 閱讀 7005

第三章

3.1 變數

符號常量——預處理器方式

在c++編譯過程中,首先將源**傳遞給預處理器。在這裡#define和#include一樣,也是乙個預處理器編譯指令。該編譯指令告訴預處理器,在程式中查詢inf,並將程式中所有的inf替換成為1e9。完成這項操作之後再替換。

3.2 const

const的好處:1,明確指定型別;2,可定義限制在特定的函式或檔案中;3,const可用於定義更複雜的型別。

3.3 浮點數的儲存方式

採用術語浮點;例子:

34.1245 和34124.5 這兩個浮點數儲存的在記憶體中的結構為:

0.341245(基準值)和100(縮放因子)

0.341245(基準值相同)和10(縮放因子)

在計算機內部的縮放因子是2的冪,而不是10的冪。

第四章,符合型別

4.2面向行輸入

1,getline()

它通過回車鍵輸入的換行符來確定輸入結尾。要呼叫這種方法,可以使用cin.getline()。該函式有兩個引數。第乙個引數是用來儲存輸入行的陣列的名稱,第二個引數是要讀取的字元數(如果為20,則最多讀取19個字元)。(此函式可接受3個引數,17章討論)

2,get()

引數同getline,遇到換行符結束,但是換行符不會跳過,仍然在佇列中。因此輸入在呼叫乙個get來跳過該換行符。

cin.get(name,size); cin.get(); cin.get(s1,sz);

同時,還可以兩次呼叫get()函式

cin.get(name,size).get();因為cin.get()返回的是乙個cin物件,故可以此操作。

4.7 new使用

1,使用new建立的指標指,可用delete刪除

int *p = new int; delete p;

2,使用new 建立動態陣列

int *p = new int[50];

注意:1,不要使用delete來釋放不是new分配的記憶體.

2,不要使用delete釋放同乙個記憶體塊兩次

3,如果使用new為陣列分配記憶體,則應該使用delete來釋放

4,如果使用new為乙個實體分配記憶體,則應該使用delete(沒有方括號)來釋放

5,對空值指標應用delete是安全的

4.8.4 自動儲存,靜態儲存,動態儲存

1,自動儲存

在函式內部定義的常規變數使用自動儲存空間,被稱為自動變數,這意味著他們在所屬的函式被呼叫時自動產生,在該函式結束時消亡。

2,靜態儲存

靜態儲存是整個程式執行期間都存在的儲存方式。static

3,動態儲存

new和delete操作符提供了一種比自動變數和靜態變數更靈活的方法。他們管理了乙個記憶體池,稱為自由儲存空間。記憶體池同用於靜態變數和自動變數的記憶體是分開的。

C 學習筆記 3 4多繼承

多繼承概念 1.乙個類有多個直接基類的繼承關係稱為多繼承 2.多繼承宣告語法 class 派生類名 訪問控制 基類名1,訪問控制 基類名2,訪問控制 基類名n void printb1 private int b1 class base2 void printb2 private int b2 cl...

Windows 程式設計3 4章筆記

while getmessage msg,null,0,0 獲得訊息 後面2個引數為0會接受任何 win32訊息 return 0 lresult callback myproc hwnd hwnd,uint umsg,win32訊息的型別 wparam wparam,第乙個附加引數 lparam ...

c專家程式設計3 4章讀書筆記

師兄畢業了,留給我一本c專家程式設計。今日略讀幾章,發現此書內容尚可,就是翻譯的不好,導致有些內容無法一下子就理解,現就其中的幾點內容做詳細分析。1.3.3 優先順序規則 與 3.4 通過圖表分析c語言宣告 這一點內容我覺得寫的非常好,比較適於分析複雜的c語言宣告,就不給大家做展開分析了。2.typ...