1 / 54

明解 C++ 教學手冊 柴田望洋 博士 著 書號: PG20269

明解 C++ 教學手冊 柴田望洋 博士 著 書號: PG20269. 第四章 資料型態和陣列. 本章要學習的是整數型態和浮動小數點型態等內建資料型態、有效率地表示同型態之資料的陣列,以及表示整數值之集合體的列舉。. 4-1 整數型態. 整數型態 整數型態 (integer type) 是可表示有限範圍內的連續整數之型態。 在宣告型態時加上 unsigned 或 signed 等 型態修飾詞 (type specifier) ,可以指定要使用 無符號的整數型態 還是 有符號的整數型態 。.

Download Presentation

明解 C++ 教學手冊 柴田望洋 博士 著 書號: PG20269

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 明解C++教學手冊柴田望洋 博士 著書號:PG20269

  2. 第四章 資料型態和陣列 本章要學習的是整數型態和浮動小數點型態等內建資料型態、有效率地表示同型態之資料的陣列,以及表示整數值之集合體的列舉。

  3. 4-1 整數型態 整數型態 整數型態(integer type)是可表示有限範圍內的連續整數之型態。 在宣告型態時加上unsigned或signed等型態修飾詞(type specifier),可以指定要使用無符號的整數型態還是有符號的整數型態。

  4. 整數型態還可依據其能夠表示之個數,分為char、short int、int、long int這四種,除了char型態以外,其他三個形態都各有無符號版和有符號版。 這些型態與bool型態及wchar_t型態合稱為泛整數型態(integral type)或整數型態(integer type)。

  5. C++的處理器是以<climits>標頭來提供整數型態的各型態所能表現之數值範圍。C++的處理器是以<climits>標頭來提供整數型態的各型態所能表現之數值範圍。

  6. #define指令是進行「取代」之指示,像這樣的取代指令就是類似對象巨集(object-like macro),而INT_MAX這樣的名稱則是巨集名稱(macro name)。

  7. 使用類似對象巨集的優點為: 可以將值的管理集中在巨集定義的部份。 由於可以賦予常數值名稱,所以程式會比較容易解讀。

  8. 字元型態有以下三種: 單純字元型態 無符號的字元型態 有符號的字元型態

  9. 字元型態所能表現的範圍會因處理器而不同,這是因為各種處理器之字元型態在記憶體上所佔有的位元數不同。字元型態所能表現的範圍會因處理器而不同,這是因為各種處理器之字元型態在記憶體上所佔有的位元數不同。

  10. 電腦是透過字元碼來識別字元。

  11. 整數常值是以十進位數、八進位數以及十六進位數這三種基數來表示。整數常值是以十進位數、八進位數以及十六進位數這三種基數來表示。

  12. 物件和sizeof運算子 變數的正式名稱為物件(object)。

  13. sizeof運算子有以下這兩種形式: sizeof 運算式 izeof(型態)

  14. size_t型態和typedef sizeof運算子所產生的size_t型態,並不是C++本身的內建型態(built-in type),必須引入<cstddef>標頭才能使用。 typedef宣告可以給予即存型態另一個名稱。

  15. typeid運算子 typeid運算子可以取得型態的各種相關資訊。

  16. bool型態 不是0的數值會被視為true,而0則會被視為false。

  17. 4-2 浮動小數點型態 浮動小數點型態 浮動小數點型態()可以表示具有小數點以下部份之實數,它可分為以下這三種: float double long double

  18. 浮動小數點常值可以使用附指數之數學表示法。浮動小數點常值可以使用附指數之數學表示法。 若是加上浮動小數點尾碼(floating suffix),就可以指定型態。

  19. 4-3 運算和型態 運算和型態

  20. 在兩邊運算元的型態不同的運算中,會進行隱式形態轉換(implicit type conversion)。

  21. 作為運算對象的運算元之型態不同時,型態較小的運算元會先轉換成較大的型態再進行計算。作為運算對象的運算元之型態不同時,型態較小的運算元會先轉換成較大的型態再進行計算。

  22. 顯式型態轉換 要用實數求取整數除以整數的商時,至少要有一邊的運算元是double型態,並且使用「/」運算子。

  23. 顯式型態轉換的轉型寫法: (型態) 運算式 這種顯式型態轉換(explicit type conversion)就叫做轉型(cast),其中的( )則是轉型運算子。 顯式型態轉換的函數寫法: 型態 (運算式)

  24. static運算子可以執行靜態轉型(static cast),它是適用於隱式型態轉換的「自然型態轉換」所使用的運算子。

  25. 可以使用轉型寫法、函數寫法和static cast的其中之一,來進行整數和浮動小數點數之間的型態轉換。

  26. 迴圈控制 下列程式的執行結果會視處理器而有所不同。

  27. 作為判斷迴圈之基準的變數,應該使用整數而非浮動小數點數。作為判斷迴圈之基準的變數,應該使用整數而非浮動小數點數。

  28. 4-4 陣列 陣列 陣列是由同型態之變數(元素)集合而成的。 陣列是透過賦予元素型態、變數名稱和元素數來宣告,而元素數必須是常數。

  29. 各元素的存取是藉由在[ ]中賦予整數型態之索引(subscript)來進行。 由於開頭元素的索引會是0,所以各元素從頭開始會依序是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]。

  30. 可藉由陣列來實現相同型態的集合體。

  31. 陣列和for敘述 下面是使用陣列的程式。

  32. 下面是用for敘述改寫之後的程式。

  33. 使用陣列處理成績 使用陣列改寫List 4-17的程式如下:

  34. 加上const來宣告的物件,就可以作為無法變更值的常數運算式(const expression)來使用。

  35. 陣列的初始化 給予陣列的初始化子是用逗號(,)來區隔,並依序排在{ }之中。 若是不給予元素數來宣告陣列,就會依初始化子的數量來決定陣列的元素數。

  36. 陣列的元素數 陣列a的元素數是使用sizeof(a) / sizeof(a[0])來求取。

  37. 陣列型態的資訊 typeid運算子也可以調查陣列的型態。

  38. 將陣列逆向排列

  39. 陣列的複製 由於無法透過指定運算子來複製陣列,所以必須像下面的程式這樣子進行複製。

  40. 逐一走過陣列的元素就叫做走訪(traverse)。

  41. 多維陣列 也可以將「陣列」作為陣列的元素,這種陣列又稱為多維陣列(multidimensional array)。

  42. 初始化子 沒有給予初始化子的元素,將自動以0初始化。 多維陣列的初始化子沒有必要以{ }來作成巢狀結構。

  43. 4-5 列舉 列舉 表示可以表示值的「集合體」。 宣告表示狗、貓、猴的集合體之列舉(enumeration)。Animal是列舉名稱(enum-name),而{ }中的Dog、Cat、Monkey則是列舉元(enumerator)。 無法對列舉的變數使用插入運算子來讀入值,此時會暫且將值讀入int型態的變數type。 宣告animal型態的變數「selected」。

More Related