星期二, 2月 28, 2006

[note] BCB

《Borland C++ Builder 3.0》


cout是一個專門用來處理輸出的類別,功能強大。原型在iostream.h。

endl代表換行。

字串常數(string constant): 定義後即不能變更值。

Program = Data + Algorithm

raw data + Program = Information

變數的定義與宣告稍有不同,定義一個變數就等於告訴complier替這個變數預留記憶體位置。宣告只是通知complier可以在某個地方找到這個變數的定義。通常兩者為同一件事,只有當變數要在不同的編譯模組(OBJ)使用時,才會有獨立的宣告敘述(extern int... )

BCB 的 keyword Fig 2.2(68)

BCB 的資料型態 Fig2.3(69)

儲存資料方式
靜態配置(static/ local allocation): 陣列
動態配置(dynamic allocation): 指標

C++ 運算子Fig2.9(78)

local allocation 是在 stack 上配置一個變數(local variable)的記憶體位址,而stack上的資料會在函式switch時被覆蓋,所以變數的值只有在函式內有效。

指標圖解 Fig2.16 (95)

指向不同型態的指標變數,會依據指標變數所指向的資料型態,來取出適當範圍內記憶體所存的資料。

可以使用 sizeof 這個運算子取得各種資料型態所佔的 byte 數。

指標變數遞增(increament)時,不同型態的指標變數所造成的記憶體位址增量是不同的。

所有程式執行前都會複製到記憶體裡,程式一開始執行就變成一個程序(process),排在系統的佇列(queue)中,等待CPU執行。所有事都在記憶體裡發生。

陣列擁有固定的記憶體區塊,超過陣列範圍的存取會被 complier 檢查出來。指標則否,指標變數可能在執行時期(Run-time)獲得超出範圍的值,造成潛在危險。應訂定上下界規範指標範圍。

字串必須以空字元(0)結尾,一般以cin讀取字串或定義宣告字串時會自動產生空字元,但宣告字元陣列時要注意,自行加上空字元。

動態記憶體
- 動態記憶體配置(dynamic allocation): 指標變數 (Ptr) = new 配置的資料型態 [配置的大小]l;
- 動態記憶體回收(dynamic de-allocation): delete [配置的大小] 指標變數 (Ptr) ;
- strlen() 取出的字串長度不包括空字元在內
- 動態配置記憶體的大小需為字串的長度+1,以容納空字元

標準字元函式 Fig2.19 (103)

多維陣列記憶體配置圖解 Fig2.20(105)


AnsiString(111-119)