Hello, World!

一、最簡 C++ 程式

int main()  // 最簡C++程式
{

} Code language: JavaScript (javascript)
  1. 這段程式定義一個僅有main的函式,無傳入參數、不執行任何邏輯。
  2. 左大括號{代表main函式主體的開頭,右大括號}代表函式主體結束,所有要執行的程式碼都需放置在一對大括號之間。
  3. 雙斜線//為單行註解,從//到該行末尾的內容僅供人閱讀,編譯器會直接忽略註解內容;
  4. 任何完整的 C++ 程式有且僅能有一個全域main()函式,程式執行時會從main開始運行。
  5. int代表此函式會回傳整數;函式內回傳0代表程式正常結束,回傳非0數值則代表執行發生錯誤。
  6. 第5點提到的回傳值,Unix/Linux 作業系統會讀取該數值,多數 Windows 程式則不會使用。

二、標準輸出 Hello World 完整範例

#include <iostream>

int main()
{
    std::cout << "Hello, World!\n";
}Code language: C++ (cpp)
  • #include <iostream>:告知編譯器匯入標準輸入輸出串流函式庫的宣告。若缺少這一行,編譯器無法辨識std::cout輸出語法;

iostream就是前面所說的標準函式庫之一,屬於編譯器內建、以C++預先寫好的程式碼,可用來處理輸入與輸出操作,例如在主控台列印一行文字。

  • <<輸出運算子:將右側內容寫入左側輸出物件std::cout。本範例會將字串"Hello, World!\n"輸出(非實體印表機列印,指畫面輸出)至標準主控台(CMD終端)。
  • “Hello, World!\n” 為字串常值:以雙引號包覆的文字;跳脫字元\n代表換行符號,輸出後游標會自動移至下一行。
  • std:::命名空間限定符,代表cout是標準函式庫std底下的元件。後續會介紹using namespace std;,可省略std::前綴,直接使用cout

命名空間限定符的用途是避免名稱衝突,替函式庫加上專屬前綴作區分。舉例:同一班級有兩位同名學生,老師會加上標籤區分,像是Jason一號、Jason二號,這個標籤的作用就等同這裡的std。

完整範例

下方範例定義兩個自訂函式,在main函式呼叫其中一個函式,該函式再呼叫另一個函式。功能為計算圓面積:輸入半徑數值,並印出對應的圓面積。

#include <iostream>
using namespace std; // 引入std命名空間後,後續可省略std前綴

// 計算圓面積
double circle_area(double x)
{
    return 3.14 * x * x;
}

// 印出圓面積
void print_circle_area(double r)
{
    cout << "The area of circle with radius " << r << " is " << circle_area(r) << "\n";
}

int main()
{
    print_circle_area(2.0); // 半徑為2,輸出圓面積
    return 0;
}Code language: C++ (cpp)

執行結果

The area of circle with radius 2 is 12.56Code language: JavaScript (javascript)

cout 可串接多個 << 連續輸出多段內容,若未加上 \n 則所有內容會顯示在同一行。除了字串常值,也能輸入各種變數,範例中的r即為double型別變數直接輸出。

語法 void print_circle_area(double r) 小括號內的(double r)即為傳入參數。所謂傳入參數,代表變數r的值由外部呼叫時傳遞進函式內部。當main執行 print_circle_area(2.0); 時,數值2.0會傳入函式,函式內r的值即為2.0。接續cout會依序輸出文字、變數r,再呼叫 circle_area(r);呼叫時r的數值2.0會傳給 double circle_area(double x) 的參數x,函式內x等於2.0,接著計算3.14 * 2 * 2得到12.56,透過return將結果傳回呼叫處,等同下方程式邏輯:

cout << "The area of circle with radius " << r << " is " <<  12.56 << "\n";Code language: C++ (cpp)

輸出完成後,右大括號結束print_circle_area函式,程式流程回到main函式。

Previous:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *