C++ How to Program 7/E
第二章 C++ 程式設計簡介
學習目標
|
|
基本上這單元分為三個部分,皆非常非常基本而重要,試著去多次抄寫,熟記這些基本功。
- 第一個程式與程式基本架構
- 記憶體觀念
- 算術運算子、判斷運算子
Part I 第一個程式與程式基本架構
第一行頭兩個斜線「//」表示後面接有註解(Comment),盡量保持好習慣在程式開頭書寫註解,方便自己與他人閱讀與理解程式。
//______ 此種為單一開口型的註解,只能寫單行註解。
/*______*/此種為C風格封口型的註解,可以連續撰寫註解直到包覆結束。
第二行 #include <iostream> 是前置處理指令(preprocessor directive),用來通知前置處理器,將輸入/輸出串流標頭檔<iostream>(input/output stream header file) 的內容引入。任何城市想要用C++的串流將資料從鍵盤輸入or螢幕輸出,皆需要有這個標頭檔。
第五行int main() 是每個C++城市都有的部分。int 是一個關鍵字(keyword)表示 main 函式會傳回一個整數。
在main之後的小括號表示main是程式的一個建構區塊——函式(function)。每個城市只能有一個稱為 main 的函式,也是程式中最一開始就會執行的函式(不管位置)。
第六行+第十行{ ____ }(L/R braces)是表示main 函式的主體(body)之起始、結束。
第七行 std::cout (standard output stream object)會將後面的字串輸出,通常在程式中每個cout, cin, cerr前面都要加上std::,不過因為麻煩,因此在程式開頭使用using namespace std;來取代。
反斜線\ 稱為跳脫字元(escape character) 表示輸出一個特殊字元,\n表示新增一行,讓游標移到下一行。
第九行return 0;是離開函式的方法之一。在這個程市中指出,使用return 敘述(return statement)時,若值為0,表示執行成功。不過,在C++標準中,假如main 的最後沒碰到返回敘述,仍然表示程式成功結束。
Part II 記憶體觀念
新數值放到記憶體的位置是具有破壞性的(destructive),即如果定義了一個變數number 1,原本已經賦予一個數值 0,但是當匯入新的字元時,就字元即被刪除;但如果又另創變數number 2,則兩者會互不衝突,記憶體會另闢個位置給number 2 ,最終將兩者數值相加,並賦予該數值給變數sum,這個計算過程,數值皆不會被刪除,因此過程是不具破壞性的(nondesrtuctive)。
Part III 算術運算子、判斷運算子
運算子的優先順序,一般與代數中的規則相同:
- 在同一對小括號中的運算子先進行計算。小括號具有「最高優先權」。若為巢狀(nested,或稱嵌入,embedded)的小括號(parenthese),則會由最裡面的小括號開始執行。
- 接著處理乘除,並由左處理到右。
- 接著處理加減,同樣由左向右。
判斷運算子
if 敘述(if statement)它可讓城市按照某些條件的真假值來選擇執行哪些動作。如果條件為true,則會執行if敘述主體內的敘述。若條件不吻合(false)則程式不會執行if 中的敘述。
注意:!=, >=, <= 若倒寫(=!, =>, =<)皆會造成語法錯誤,無法使程式執行。某些情形下,=! 不算是語法錯誤,但絕對為邏輯錯誤( logic error )執行期間會造成影響。
fatal logic error 會讓程式失敗且提早結束。
nonfatal logic error 可以讓程式繼續執行,但可能會產生不正確的結果。
留言
張貼留言