第一个 C++ 程序:HelloWorld
大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。昨天我们成功搭建好了 C++ 的开发环境,今天我们来介绍一下第一个 C++ 程序,打印一个"hello world"。首先我们先贴一下示例代码和运行结果,然后再逐行讲解一下这段代码。
示例代码
//这是第一个C++程序 #include<iostream> using namespace std; int main() { cout << "hello world" << endl; return 0; }
运行结果
可以看到终端中成功输出了我们想要打印的文字"hello world"。
首先分析一下第一行,//这是第一个C++程序, 这是注释行。
在 C++ 中,注释是用来解释代码的文本,它们对程序的编译和执行没有影响。C++ 提供了两种主要的注释方式:单行注释和多行注释。
- 单行注释:使用两个斜杠 // 标记。编译器会忽略从 // 开始到该行末尾的文本。单行注释通常用于对代码行或代码块进行简短的说明。
- 示例:
// 这是一个单行注释 cout << "Hello World"; // 在代码行的末尾添加注释
- 多行注释 :也称为块注释,使用 /* 开始和 */ 结束。这种注释可以跨越多行,用于解释复杂的代码段或提供详细的信息。在 /* 和 */ 之间的所有内容都将被编译器忽略。
示例:
/* 这是一个多行注释的示例 它可以跨越多行。 这些行都不会影响程序的编译和执行。 */ cout << "Hello World";
注释可以帮助其他开发者理解代码的目的和工作原理,也可以帮助调试过程中排除错误。在一些高级场景中,注释(特别是多行注释)还可以用于自动生成文档。
第二行 #include<iostream>,在 C++ 程序中,#include<iostream> 是一个预处理指令,用于在编译之前包含标准输入输出流库(iostream)。预处理指令是在编译阶段之前执行的指令,它们通常用于包含(include)文件、条件编译等。在这种情况下,#include 用于包含或插入指定的文件内容。iostream 是一个标准库文件,它是 C++ 标准库的一部分。尖括号 < > 表示这是一个标准库文件,编译器会在标准库的目录中查找它。
iostream 库包含了处理输入和输出的功能,主要通过提供输入输出流对象,例如 cin、cout、cerr 和 clog。
总结一下,#include<iostream> 使 C++ 能够使用标准输入输出流进行基本的输入输出操作,也就是包含了这个库之后,我们就可以把"hello world"输出到屏幕上。
第三行,using namespace std; 是一个使用指令,它告诉编译器使用标准命名空间(std)。using 是一个 C++ 关键字,用于引入命名空间中的名称。namespace 是一个 C++ 关键字,用于指定一个命名空间。命名空间是一种封装名字的方式,用于避免名称冲突。std 这是 C++ 标准库中定义的命名空间。标准库的许多功能(如输入输出流、字符串、容器等)都定义在这个命名空间中。
当使用 using namespace std; 后,可以直接使用定义在 std 命名空间中的名称(如 cout, cin, vector, string 等),就不需要在每个名称前添加 std:: 前缀了。没有这个指令,你需要写 std::cout 来调用标准输出流。使用了这个指令后,就可以直接写 cout 了。
第四行为空行,第五行,int main**()**是一个特殊的函数,它是程序执行的入口点。任何一个 C++ 程序的执行都从 main 函数开始的。 int 表示整型,在这里用来指定 main 函数返回一个整数给操作系统。这个返回值通常用来表示程序的退出状态:0 表示成功,非零值表示错误或异常情况。
main() 是函数的名称和参数列表。在这个例子中,main 函数没有接受任何参数(空的括号 () 意味着没有参数)。在某些情况下,main 函数可以接受参数,用于处理命令行参数。这种情况下,函数签名可能会是 int main(int argc, char *argv[]),其中 argc 表示命令行参数的数量,argv[] 是一个指向参数字符串的指针数组。
第六行,第九行,{} 用于定义一个代码块的开始和结束。
第七行,cout << "hello world" << endl; 这行代码的作用是在控制台上输出字符串 “hello world”,然后换行。它是 C++ 中的一个标准输出语句,用于将文本信息输出到控制台。cout 是 C++ 中的一个标准输出流对象,用于将数据发送到标准输出,一般就是屏幕。<< 是一个插入操作符。它用于将右侧的数据传送到左侧的输出流中。这个操作符可以被多次连续使用,以便在单个语句中输出多个项。
"hello world" 表示的就是我们想要显示在屏幕的内容。endl 这是一个特殊的输出流操纵符,用于在输出流中插入一个换行符,然后刷新(清空)输出缓冲区,这样就可显示内容之后换行。与 endl 类似,也可以使用 \n 来插入换行符,但 \n 不会刷新输出缓冲区。
第八行,return 0; 通常出现在程序的 main 函数的末尾,表示程序的正常结束,并向告诉操作系统。return 是一个关键字,用于从函数返回一个值。在 main 函数中,return 语句指定了程序的退出状态。返回值 0 表示程序的正常终止或成功执行。这是一种约定,表示程序没有错误地执行完所有操作。如果返回的是非零值,则通常表示程序遇到了某种错误或异常情况。不同的非零返回值可以用来表示不同类型的错误。