Hello World

該程式將 Hello World! 列印到標準輸出流:

#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
}

看到它住在 Coliru

分析

讓我們詳細研究一下這段程式碼的每一部分:

  • #include <iostream> 是一個前處理器指令,包含標準 C++標頭檔案 iostream 的內容。

    iostream標準庫標頭檔案,包含標準輸入和輸出流的定義。這些定義包含在 std 名稱空間中,如下所述。

    標準輸入/輸出(I / O)資料流提供程式來得到從輸入和輸出到外部系統的方法 -通常是終端。

  • int main() { ... } 定義了一個名為 main 的新函式 。按照慣例,在執行程式時呼叫 main 函式。在 C++程式中必須只有一個 main 函式,它必須始終返回一些 int 型別。

    這裡,int 就是所謂的函式返回型別main 函式返回的值是退出程式碼。

    按照慣例,0EXIT_SUCCESS 的程式退出程式碼被執行程式的系統解釋為成功。任何其他返回程式碼都與錯誤相關聯。

    如果沒有 return 語句,則 main 函式(以及程式本身)預設返回 0。在這個例子中,我們不需要明確地寫出 return 0;

    除了返回 void 型別的函式之外的所有其他函式必須根據其返回型別顯式返回值,否則根本不能返回。

  • std::cout << "Hello World!" << std::endl; 列印 Hello World! 到標準輸出流:

    • std 是一個名稱空間::作用域解析運算子,它允許在名稱空間中按名稱查詢物件。

      有許多名稱空間。在這裡,我們使用::來表示我們想要使用 std 名稱空間中的 cout。有關更多資訊,請參閱範圍解析運算子 - Microsoft 文件

    • std::cout標準的輸出流物件,在 iostream 中定義,它列印到標準輸出(stdout)。

    • << 是,在這種情況下,所述流插入操作,所謂的,因為它插入的物體進入物件。

      標準庫定義 << 運算子,以將某些資料型別的資料插入到輸出流中。stream << contentcontent 插入到流中並返回相同但更新的流。這允許連結流插入:std::cout << "Foo" << " Bar";FooBar 列印到控制檯。

    • Hello World! 是一個字串文字,或文字文字。字串文字的流插入運算子在檔案 iostream 中定義。

    • std::endl 是一個特殊的 I / O 流操作器物件,也在檔案 iostream 中定義。將操作器插入流中會更改流的狀態。

      流操作器 std::endl 做了兩件事:首先它插入行尾字元,然後重新整理流緩衝區以強制文字顯示在控制檯上。這可確保插入到流中的資料實際顯示在控制檯上。 (流資料通常儲存在緩衝區中,然後批量重新整理,除非你立即強制重新整理。)

      避免重新整理的另一種方法是:

      std::cout << "Hello World!\n";
      

      其中\n 是換行符的字元轉義序列

    • 分號(;)通知編譯器語句已結束。所有 C++語句和類定義都需要一個結束/終止分號。