C++基本語法詳解

2020-07-16 10:04:38
每個 C++ 程式都有一個基本結構,C++程式的部件並不是在同一個地方。不過,這些部件總是會在程式中出現,所以學習 C++ 的第一步就是了解它們是什麼。下面開始認識 C++ 的第一個程式。
// A simple C++ program
#include <iostream>
using namespace std;

int main()
{
    cout << "Programming is great fun!";
    return 0;
}
一起來逐行看一下這個程式。以下是第 1 行:

// A simple C++ program

雙斜槓(//)標誌著注釋的開始。編譯器忽略從雙斜槓到行尾的所有內容。這意味著可以在該行輸入任何想要的內容,編譯器絕不會抱怨。雖然注釋並不是必需的,但它們對程式設計師非常重要。大多數程式比此程式複雜得多,注釋有助於解釋程式碼的作用和意圖。

第 2 行如下所示:

#include <iostream>

當某一行以 # 開頭時,表示它是一個前處理器指令。前處理器在編譯之前即讀取程式,只執行所有以#開頭的行。可以將前處理器看作是一個為編譯器 “設定”原始碼的程式。

#include 指令使前處理器在程式中包含另一個檔案的內容。尖括號中的單詞 iostream 是要包括的檔案的名稱。iostream 檔案包含的程式碼允許 C++ 程式在螢幕上顯示輸出並從鍵盤讀取輸入。因為 cout 語句(在第 7 行)將輸出列印到計算機螢幕,所以這裡需要包含這個檔案。其內容將被放在程式 #include 語句出現的位置。iostream 檔案稱為標頭檔案,因此它應該包含在程式的頭部或頂部。

第 3 行如下所示:

using namespace std;

程式通常包含具有唯一名稱的各種型別的專案。後續將學習建立變數、函數和物件,它們都是必須具有名稱的程式實體的範例。C++ 使用名稱空間來組織程式實體的名稱。該語句使用"namespace std;”宣告該程式將存取名稱為 std 的名稱空間的實體(沒錯,名稱空間都有自己的名稱)。程式需要存取 std 名稱空間,因為 iostream 檔案建立的每個名稱都是該名稱空間的一部分。為了使程式能夠使用 iostream 中的實體,它必須具有存取 std 名稱空間的許可權。

第 5 行如下所示:

int main()

這標誌著函數的開始。函數可以被認為是一個或多個具有名稱的程式設計語句的組。此函數的名稱為 main,該名稱後面的一對括號表示它是一個函數。int 意為“integer”,表示該函數在執行完畢後將返回給作業系統一個整數值。

雖然大多數 C++ 程式都有多個函數,但每個 C++ 程式都必須有一個名為 main 的函數。這是程式的起點。如果在閱讀其他人的程式時,想要找到其起始位置,那麼只需要找到一個叫 main 的函數即可。

注意,C++ 是區分大小寫的語言。這意味著它將大寫字母視為與小寫字母完全不同的字元。在 C++ 中,函數 main 的名稱必須全部使用小寫字母來寫。換句話說,C++並不認為“main”與 “Main” 或 “MAIN” 相同。

第 6 行僅包含一個單獨的獨立字元:

{

它被稱為左大括號或開放大括號,它與函數 main 的開頭相關聯。構成函數的所有語句都包含在一組大括號中。如果從開放大括號看下面的第 3 行,會發現有封閉的大括號。兩個大括號之間的一切都是函數 main 的內容。

警告,請確保程式中的每個開放大括號都有一個封閉括號。

在開放大括號之後,可以看到第 7 行中的以下語句:

cout << "Programming is great fun!";

該行將在螢幕上顯示一條訊息,在訊息"Programming is great firn!”顯示時不會有雙引號。程式設計術語中,引號內的字元組合稱為字串常數、字串常數或簡稱為字串。

注意,這是程式中唯一能夠在螢幕上列印任何內容的行。其他行,例如 #include <iostream> 和 int main(),對於程式的框架是必需的,但它們不會產生任何螢幕輸出。請記住,程式是針對計算機的一組指令。如果要在螢幕上顯示某些內容,則必須為該目的而使用程式設計語句。

在第 7 行可以看到是以分號結尾的。就像句點標誌著一個句子的結尾一樣,分號被用來標記 C++ 中一個完整語句的結束。但許多 C++ 程式碼行,如注釋、前處理器指令以及函數的開始,都不是完整的語句,這些不以分號結尾。以下是一些何時使用分號的範例。

// Semicolon examples //這行是注釋
# include <iostream> //這行是前處理器指令
int main()  //這行是函數開頭
    cout << "Hello"; //這行是完整的語句

當以後使用 C++ 越來越久時,自然會感覺到哪裡應該使用分號,而哪裡不應該使用。所以現在不必擔心,只關注學習程式的基本框架即可。

第 8 行如下所示:

return 0;

當程式完成執行時,將整數值 0 傳送回作業系統。值 0 通常表示程式成功執行。

程式的最後一行,第 9 行包含一個封閉大括號:

}

這個大括號標誌著主要功能的結束。因為 main 是程式中唯一的功能,它也標誌著程式的結束。

在該範例程式中出現了幾組特殊字元。表 1 簡要說明了它們的使用方法。

表 1 特殊字元的使用方法
字元 名 稱 說 明
// 雙斜槓 標記註釋的開始
# 井字號 標記前處理器指令的開始
<> 開放和封閉尖括號 與 #include 指令一起使用時包含一個檔名
() 開放和封閉括號 用於命名函數,如 int main()
{} 開放和封閉大括號 包含一組語句,如函數的內容
“” 開放和封閉引號 包含一串字元,例如要在螢幕上列印的訊息
分號 標記完整的程式設計語句的結尾