理解 C++/簡介
| “ | 要理解土著人,你必須學習他們的語言。 | ” |
一個軟體程式或應用程式包含一組指令,告訴計算機該做什麼。蛋糕食譜可以被認為是一個程式,它包含一系列的指令,告訴一個人該做什麼來製作蛋糕。當你瞭解指令所使用的語言時,你可以隨時參考同一個蛋糕食譜來製作蛋糕。計算機可以參考同一個軟體程式來重複相同的指令序列,只要這些指令屬於計算機能夠遵循的指令集。計算機能夠遵循的指令集被稱為指令集。

為了讓計算機做一些事情,指令可能需要接收輸入,將輸入處理為資料,並將資訊作為輸出返回。一個指令的輸出可以作為另一個指令的輸入。輸入和輸出可以是計算機設計用來執行的任何事情。一臺做蛋糕的計算機可能需要知道要製作多少份作為輸入,並告知你每種成分需要多少作為輸出,並處理這些成分來製作蛋糕。
一種程式語言包含一組可用的指令,這些指令可用於告訴計算機該做什麼,以及語法規則,這些規則在遵循時可用於建立有意義的表示式,例如“1+1”。英語有語法規則,在遵循這些規則時,可以將不同型別的詞(例如名詞和動詞)組合成有意義的句子。規則 語言 當 語法 意義 遵循 使 是 (語言在語法規則遵循時才有意義)。正確語法的的重要性應該很清楚。
一個表示式是一系列一個或多個語法正確的指令,告訴計算機該做什麼。一個編譯器是一個軟體程式,它將程式語言的表示式的含義轉換為計算機可以理解的適當指令。任何理解如何編寫程式語言表示式的人都可以使用編譯器將表示式翻譯成計算機可以理解的指令來告訴計算機該做什麼,就像一個既懂西班牙語又懂英語的人可以充當只懂英語或西班牙語的人的翻譯一樣。理解並能使用程式語言編寫軟體程式的人被稱為程式設計師。

電子計算器是計算機最簡單的形式之一,其表示式由數字、數學運算子和函式(如 log())組成,這些函式可以組合在一起,建立一個數學表示式,計算器可以處理該表示式以返回結果。例如,數學表示式“1+1”包含加法指令,該指令接收兩個數字作為輸入,當由計算器處理時,返回“2”作為結果或輸出。但是,與計算器不同,一臺計算機的指令對另一臺計算機可能毫無意義,就像兩個人沒有共同語言就無法相互理解一樣。程式語言(如 C++)透過將一致的語言翻譯成目標計算機可以處理的指令,使編寫可移植的程式變得更加容易。
C++ 中的表示式包含數字、運算子、變數、函式、類、列舉以及構成該語言的其他內容。在英語中,各種標點符號用來結束一個句子。在 C++ 中,分號(;)結束所有語句,例如“a=1+1;”。一個塊是一組用花括號({})包圍的語句。塊的作用與英語中的段落非常相似。
現在你已經瞭解了 C++ 的基本構建塊,你準備好了看到你的第一個 C++ 程式
/*
helloworld.cpp
Displays:
Hello World!
My name is Dell!
*/
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl << "My name is Dell!" << std::endl;
return 0; // exit program
}
你可能已經看到了一些你還不理解的東西。讓我們逐一看看。
第 1 到第 6 行表示 C++ 註釋。註釋幫助那些審查程式碼的人,編譯器完全忽略它們。註釋通常用於記錄目的,或者使編譯器忽略程式碼的一部分。類似於上面描述的塊,“/*" 開始一個註釋塊,第一個出現的 "*/" 結束一個註釋塊。
第 8 行是編譯器不會忽略的第一條指令,它讀取 "#include <iostream>". #include告訴編譯器將檔案的原始內容視為當前程式的一部分。在 iostream 的情況下,C++ 程式將能夠接收輸入和傳送輸出。包含使 C++ 程式設計變得更容易,因為它允許你在自己的程式中重用其他程式設計師的現有工作。
第 10 行,你會在 C++ 中找到更多關鍵術語。int是 C++ 中的基本型別之一。int是 integer 的縮寫。一個int可以儲存任何整數值,無論正數還是負數,但在一定的範圍內,不過我們暫時不會討論這些。
接下來你會找到main,一個函式名。C++ 程式從呼叫main函式開始。C++ 程式只能有一個 main 函式,並且該函式必須返回一個整數。
接下來你會找到(),這意味著該函式不傳遞任何引數。我們稍後會討論函式。
接下來是{,它表示一個塊的開始。這個特殊的塊被稱為函式塊。我們稍後會在引入新概念時討論 C++ 中存在的其他型別的塊。
在繼續之前,讓我們認識一下“using namespace std;”。這個表示式意味著在使用標準庫中的某些內容時,不需要在它們之前包含 std::。這可以節省輸入,但代價是我們以後會討論。在包含了這個之後,程式碼可以像這樣縮短
/*
helloworld.cpp
Displays:
Hello World!
My name is Dell!
*/
#include <iostream.h>
using namespace std;
int main() {
cout << "Hello World!" << endl << "My name is Dell!" << endl;
return 0; // exit program
}
接下來,“那些奇怪的 << 在程式碼中做什麼?”你可能會問。這告訴編譯器“好的,這是我們將列印到螢幕上的內容”,當你看到類似於
cout << "Hello World!" << endl << "My name is Dell!" << endl;
你可能會想知道為什麼不直接這樣做?
cout "Hello World!" endl "My name is Dell!";
原因是語法。如果沒有 <<,編譯器不知道何時執行下一個任務(在本例中,第二個任務是“Hello World!”)。從技術上講,這是計算機的思路(如果你理解了,你就不用讀了)
"好的,我看到了一個 cout。這意味著將內容列印到提示符。在它旁邊我看到了“Hello World!”,我會將它傳送到螢幕。哦,我看到了一個 <<,我正在繼續進行下一步。下一件事是 endl,所以我會建立一個新行。另一個 <<!哇,我需要去買彩票。好的,所以現在我必須列印“My name is Dell!”。現在我看到了 ;。好的,我完成了這整行程式碼."
現在,程式設計互動式程式的基礎……變數。簡而言之,變數儲存東西,就像一個儲存箱。我們稍後會完成它……
在本書的剩餘部分,你將學習更多關於 C++ 的知識,瞭解該語言的標準規則,並理解這個和其他你可能遇到的 C++ 程式。本章的其餘部分介紹了本書中其他每一章的內容。