第一个 C++ 程序:HelloWorld
大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。昨天我们成功搭建好了 C++ 的开发环境,今天我们来介绍一下第一个 C++ 程序,打印一个”hello world”。首先我们先贴一下示例代码和运行结果,然后再逐行讲解一下这段代码。
示例代码
//这是第一个C++程序#includeusing namespace std;int main(){ cout << "hello world" << endl;return 0;}
运行结果
可以看到终端中成功输出了我们想要打印的文字”hello world”。
首先分析一下第一行,//这是第一个C++程序,
这是注释行。
在 C++ 中,注释是用来解释代码的文本,它们对程序的编译和执行没有影响。C++ 提供了两种主要的注释方式:单行注释和多行注释。
单行注释:使用两个斜杠
//
标记。编译器会忽略从//
开始到该行末尾的文本。单行注释通常用于对代码行或代码块进行简短的说明。示例:
// 这是一个单行注释cout << "Hello World";// 在代码行的末尾添加注释
多行注释 :也称为块注释,使用
/*
开始和*/
结束。这种注释可以跨越多行,用于解释复杂的代码段或提供详细的信息。在/*
和*/
之间的所有内容都将被编译器忽略。示例:
/* 这是一个多行注释的示例 它可以跨越多行。 这些行都不会影响程序的编译和执行。*/cout << "Hello World";
注释可以帮助其他开发者理解代码的目的和工作原理,也可以帮助调试过程中排除错误。在一些高级场景中,注释(特别是多行注释)还可以用于自动生成文档。
第二行 #include
,在 C++ 程序中,#include
是一个预处理指令,用于在编译之前包含标准输入输出流库(iostream)。预处理指令是在编译阶段之前执行的指令,它们通常用于包含(include)文件、条件编译等。在这种情况下,#include
用于包含或插入指定的文件内容。iostream
是一个标准库文件,它是 C++ 标准库的一部分。尖括号 表示这是一个标准库文件,编译器会在标准库的目录中查找它。
iostream
库包含了处理输入和输出的功能,主要通过提供输入输出流对象,例如 cin
、cout
、cerr
和 clog
。
总结一下,#include
使 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
表示程序的正常终止或成功执行。这是一种约定,表示程序没有错误地执行完所有操作。如果返回的是非零值,则通常表示程序遇到了某种错误或异常情况。不同的非零返回值可以用来表示不同类型的错误。