每个 C++ 程序都有一个基本结构,C++程序的部件并不是在同一个地方。不过,这些部件总是会在程序中出现,所以学习 C++ 的第一步就是了解它们是什么。下面开始认识 C++ 的第一个程序。
// A simple C++ program
#include <iostream>
using namespace std;
int main()
{
cout << "Programming is great fun!";
return 0;
}
一起来逐行看一下这个程序。以下是第 1 行:
双斜杠(//)标志着注释的开始。编译器忽略从双斜杠到行尾的所有内容。这意味着可以在该行输入任何想要的内容,编译器绝不会抱怨。虽然注释并不是必需的,但它们对程序员非常重要。大多数程序比此程序复杂得多,注释有助于解释代码的作用和意图。
第 2 行如下所示:
当某一行以 # 开头时,表示它是一个预处理器指令。预处理器在编译之前即读取程序,只执行所有以#开头的行。可以将预处理器看作是一个为编译器 “设置”源代码的程序。
#include 指令使预处理器在程序中包含另一个文件的内容。尖括号中的单词 iostream 是要包括的文件的名称。iostream 文件包含的代码允许 C++ 程序在屏幕上显示输出并从键盘读取输入。因为 cout 语句(在第 7 行)将输出打印到计算机屏幕,所以这里需要包含这个文件。其内容将被放在程序 #include 语句出现的位置。iostream 文件称为头文件,因此它应该包含在程序的头部或顶部。
第 3 行如下所示:
程序通常包含具有唯一名称的各种类型的项目。后续将学习创建变量、函数和对象,它们都是必须具有名称的程序实体的示例。C++ 使用命名空间来组织程序实体的名称。该语句使用"namespace std;”声明该程序将访问名称为 std 的命名空间的实体(没错,命名空间都有自己的名称)。程序需要访问 std 命名空间,因为 iostream 文件创建的每个名称都是该命名空间的一部分。为了使程序能够使用 iostream 中的实体,它必须具有访问 std 命名空间的权限。
第 5 行如下所示:
这标志着函数的开始。函数可以被认为是一个或多个具有名称的编程语句的组。此函数的名称为 main,该名称后面的一对括号表示它是一个函数。int 意为“integer”,表示该函数在执行完毕后将返回给操作系统一个整数值。
虽然大多数 C++ 程序都有多个函数,但每个 C++ 程序都必须有一个名为 main 的函数。这是程序的起点。如果在阅读其他人的程序时,想要找到其起始位置,那么只需要找到一个叫 main 的函数即可。
注意,C++ 是区分大小写的语言。这意味着它将大写字母视为与小写字母完全不同的字符。在 C++ 中,函数 main 的名称必须全部使用小写字母来写。换句话说,C++并不认为“main”与 “Main” 或 “MAIN” 相同。
第 6 行仅包含一个单独的独立字符:
它被称为左大括号或开放大括号,它与函数 main 的开头相关联。构成函数的所有语句都包含在一组大括号中。如果从开放大括号看下面的第 3 行,会发现有封闭的大括号。两个大括号之间的一切都是函数 main 的内容。
在开放大括号之后,可以看到第 7 行中的以下语句:
该行将在屏幕上显示一条消息,在消息"Programming is great firn!”显示时不会有双引号。编程术语中,引号内的字符组合称为字符串常数、字符串常量或简称为字符串。
注意,这是程序中唯一能够在屏幕上打印任何内容的行。其他行,例如 #include <iostream> 和 int main(),对于程序的框架是必需的,但它们不会产生任何屏幕输出。请记住,程序是针对计算机的一组指令。如果要在屏幕上显示某些内容,则必须为该目的而使用编程语句。
在第 7 行可以看到是以分号结尾的。就像句点标志着一个句子的结尾一样,分号被用来标记 C++ 中一个完整语句的结束。但许多 C++ 代码行,如注释、预处理器指令以及函数的开始,都不是完整的语句,这些不以分号结尾。以下是一些何时使用分号的示例。
当以后使用 C++ 越来越久时,自然会感觉到哪里应该使用分号,而哪里不应该使用。所以现在不必担心,只关注学习程序的基本框架即可。
第 8 行如下所示:
当程序完成运行时,将整数值 0 发送回操作系统。值 0 通常表示程序成功执行。
程序的最后一行,第 9 行包含一个封闭大括号:
这个大括号标志着主要功能的结束。因为 main 是程序中唯一的功能,它也标志着程序的结束。
在该示例程序中出现了几组特殊字符。表 1 简要说明了它们的使用方法。
字符 | 名 称 | 说 明 |
---|---|---|
// | 双斜杠 | 标记注释的开始 |
# | 井字号 | 标记预处理器指令的开始 |
<> | 开放和封闭尖括号 | 与 #include 指令一起使用时包含一个文件名 |
() | 开放和封闭括号 | 用于命名函数,如 int main() |
{} | 开放和封闭大括号 | 包含一组语句,如函数的内容 |
“” | 开放和封闭引号 | 包含一串字符,例如要在屏幕上打印的消息 |
; | 分号 | 标记完整的编程语句的结尾 |