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++语句和类定义都需要一个结束/终止分号。