第一个程序
本课将教您如何编写第一个简单的 C++ 程序,该程序可以显示文本并执行简单的计算。
应用程序代码
我们在上一课结束时使用了以下代码
#include <iostream>
int main()
{
std::cout << "Hello, World!";
}
Hello, World!
它会在控制台中显示“Hello, World”文本。
解释
主函数
每个 C++ 程序都包含一段我们称之为主函数的代码。它是程序启动时运行的第一个1代码。
int main()
{
}
上面代码的第一行开始了函数定义。它由返回类型 int
、名称 main
以及其括号 ()
中的参数(在本例中为空)组成。虽然这些术语中的大多数现在并不重要,但您应该注意的唯一是名称 main
。您的程序必须始终包含此格式指定的 main
函数。
还有其他变体
编写 main
函数有多种方法,但就目前而言,我们将坚持最简单的一种——我们上面展示的那种。有时您可能会看到以以下任一方式开始的 main
函数:
int main(int argc, char* argv[])
int main(int argc, char** argv)
auto main(int argc, char** argv) -> int
auto main() -> int
虽然可能还有更多变体,但它们都做同样的事情——它们定义了程序的入口点。我们将在未来介绍它们之间的区别。
代码块
程序知道 main
的开始和结束位置很重要。我们为此使用代码块。C++ 中的代码块是一组包含在大括号内的指令。
outside
int main()
{
inside
}
outside
大括号之间的所有内容都算作代码块内的内容,其他所有内容都算作代码块外的。
执行顺序
main
函数包含由程序员提供的指令的代码块。计算机按顺序执行指令,或者更简单地说——逐行,从上到下。当程序运行时,main
中的第一行将被执行,然后是第二行,依此类推。
main
函数的内容是程序运行的第一段代码。
在下面的示例中,我们在 main
函数中放入了三条指令来演示执行顺序。您将在本课稍后了解更多关于 std::cout
的信息。
#include <iostream>
int main()
{
std::cout << "This is an instruction that displays text.";
std::cout << "And this is another instruction that displays text.";
std::cout << "This is the third instruction that displays text.";
}
iostream
头文件

#include
指令实际上做了什么?:)
在代码的最开始有一个行
#include <iostream>
这使我们可以使用 C++ 提供的标准输入输出工具。iostream
这个名字是 input/output stream(输入/输出流)的缩写。实际上,这将允许我们输出用户可以看到的文本,并接收输入文本来改变程序的行为。
iostream
这个名字指的是你磁盘上的一个头文件,它来自C++ 标准库。我们将在不久的将来更详细地解释它们和 #include
。现在,请记住,在大多数情况下,我们在文件开头放置 #include <header_file>
。
控制台
“控制台”或“终端”是程序最基本的通信形式。它允许程序和用户之间进行简单的双向文本界面。您将非常熟悉这个工具,因为在您成为一名优秀程序员的旅程中,您将在每一步都使用它。
下面是一些在多种环境中运行相同代码的示例。
虽然并非所有终端都相同,但它们看起来会非常相似,仅显示简单的文本,几乎没有颜色。🖼 概览:
正如您所见,许多代码编辑器,如 Visual Studio、VS Code、Replit.com、CLion、Vim 等,都内置了控制台。
向控制台打印文本
为了在控制台中显示文本,我们在 main
块内使用了以下语句:
std::cout << "Hello, World!";
cout
这个名字代表character output(字符输出)。它用于将文本发送到控制台。我们稍后会提到 std::
前缀。
对于好奇的人
严格来说,cout
是一个所谓的字符输出流,它将内容写入标准输出,在本例中是您的控制台,但您现在不必记住这一点。
如果我们复制此行几次
std::cout << "Hello, World!1";
std::cout << "Hello, World!2";
std::cout << "Hello, World!3";
我们的输出将变为:
Hello, World!1Hello, World!2Hello, World!3
分号 (;
) 用于分隔指令。编译器不关心指令是否写在不同的行上。分号被视为语句的结尾。因此,如下代码是可以接受的,但可读性很差。
std::cout << "Hello, World!1"; std::cout << "Hello, World!2"; std::cout << "Hello, World!3";
不要这样写代码!
上面创建的程序的呈现
请注意,文本被写入控制台时没有空格,在一行中,并在达到可用空间末尾时自动换行。
程序完全按照代码的指示执行——不多也不少。我们告诉它应该显示给定的字符……它就做了。我们必须显式地在正确的位置“换行”。这将导致后续字符从下一行的开头显示。为此,我们在文本中插入了一个特殊的换行符:\n
,如下所示:
std::cout << "Hello, World!\n";
请注意,我们使用了反斜杠 (\n
),而不是正斜杠 (/n
)。
这是在添加换行符时程序的执行方式:
\n
序列在程序中代表一个字符。更多内容将在后面介绍。
标准命名空间前缀
std::
是来自标准库命名空间的前缀,cout
就是从中来的。
初学者经常觉得输入 std::
比较麻烦。如果我们提前给出适当的代码行,就可以省略它:
#include <iostream>
int main()
{
using std::cout;
cout << "Hello, World!";
}
在包含 using std::cout;
的行之后,就不再需要 std::
前缀来使用 cout
了。它会一直有效到当前代码块(在本例中是 main
函数)的末尾。
在许多其他在线教程和资源中,非常普遍的做法是在文件顶部使用:
using namespace std;
虽然这是 C++ 中的合法代码,但几乎所有有经验的 C++ 程序员都**强烈不建议**这样做。我们将在稍后讨论原因。目前,请优先使用我们之前提到的 using std::cout;
方法。
执行计算
编程用于自动化某些活动。例如,我们可以让计算机为我们做数学运算:
#include <iostream>
int main()
{
std::cout << "120 * 120 + 540";
}
120 * 120 + 540
请注意上面程序的输出结果!
引号中的所有内容都被视为文本,而不是指令。
因此,我们得到的是我们在引号中输入的内容,而不是计算结果。要表示我们想要执行某个计算,我们需要移除引号:
#include <iostream>
int main()
{
std::cout << 120 * 120 + 540;
}
14940
启动程序后,我们将在代码中看到正确的计算结果。
数学运算符
+
将两个数字相加-
将两个数字相减*
将两个数字相乘/
将两个数字相除()
括号用于决定运算顺序
C++ 遵循您在学校可能学过的“PEMDAS”顺序。
- 首先是括号
- 然后是乘法/除法(从左到右)
- 最后是加法/减法(从左到右)
总结
您已经了解了第一个程序代码的结构。
有关练习,请访问此页面。
脚注
-
实际上,在
main
函数之前还有更多代码执行,主要用于设置程序,但这现在不重要。↩