特别篇 代码思维与能力专项训练(一)
在这一小节中,我们将从新建项目开始,介绍 C++ 中的 Hello World
代码,让同学们对 C++ 代码的最基础结构,有所了解。
1 使用 CLion 新建项目
我们要写代码,代码需要写在后缀名为 .cpp 的文件中,而 .cpp 文件,并不能独立存在,它需要包含在一个项目当中,才能发挥作用。那首先让我们看看如何去新建一个项目吧!
打开 CLion 软件后,可能有两种界面,我们需要根据界面去找到新建项目的入口。
点击新建项目后,我们会看到这样的界面:
作为初学者,我们只需要创建普普通通的 C++ 项目即可,所以我们使用默认的 “C++可执行文件” 即可。
右侧的位置,就是我们要创建的 C++ 项目将要存放在硬盘中的位置。 \
符号将路径划分为几个部分,最后一部分,就是我们的 项目名 。我们可以根据我们要做的项目,为项目取名。
警告:整个路径中所有文件夹名中,不可以出现任何英文以外的字符,否则项目将无法构建!!!
最后,点击 “创建” 或按 “回车” 键就可以新建项目了。
2 C++ 的 Hello World
对于全世界学习编程的人来说, Hello World
这个词是个特殊的存在。因为按惯例,学习任何一门语言,我们编写的第一个项目总是 Hello World
。
我们创建项目后,CLion 会自动给我们创建好 Hello World
代码,供我们测试 C++ 语言开发环境是否正常。而我们也可以从 Hello World
来学习最基础的 C++ 代码的组成。
以下是 CLion 提供给我们的 Hello World
代码:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
3 Hello World 解读
3.1 导入库文件
Hello World
代码的第一行是 #include <iostream>
。
这一句的作用,是向我们的代码中,导入一个叫做 iostream
的文件。
“i(input)”是输入的意思,“o(output)”是输出的意思,“stream”是流的意思,整体就是指“ 输入输出流 ”。
导入文件的具体作用,我们之后会详细了解,现在我们可以简单地认为,导入文件后,我们可以让我们的代码,可以使用某些特定功能。对于输入输出流来说,我们导入它之后,就可以从键盘输入文字给程序,也可以让程序输出文字到屏幕。
正因为有了 #include <iostream>
,我们才可以将 Hello, World!
输出到屏幕。
3.2 main() 函数
main()
函数是 C++ 程序的入口 。
无论是多么复杂的程序,总是需要从一个入口开始运行,所以 C++ 程序都必须有 main()
函数。
计算机只是机器,它只会一丝不苟地执行程序员写下的程序,而不懂得自己进行抉择。所以我们的程序只能有一个入口,这样计算机才可以正常找到入口并执行出现。如果有多个入口,计算机就会因为不能确定从哪个入口进入而不知所措。所以 一个 C++ 程序(同一个 C++ 项目文件夹)内,只能有一个main()
函数 。
3.3 命名空间
接下来,我们看到的是 std::cout
。要理解这一行,我们首先要理解 命名空间 的概念。
代码在电脑中运行时,全部都是 0 和 1 组成的数据而已,但我们在写代码时,为了能更清楚地知道我们在写的代码是干什么的,我们需要为电脑中的那些 0 和 1 组成的数据起一个我们看得懂的名字。
而起名字的人,并不只是我们,比如: C++ 的开发者们,为了方便我们使用 C++ 开发软件,也给很多数据起了名字,那我们在取名字时,就有可能与 C++ 的开发者们取到相同的名字。我们说过,计算机只会一丝不苟的执行程序员给它下的任务,而不会自己抉择。面对两个相同的名字,计算机会不知所措。
这时就需要将两个相同的名字进行区分。这就是 命名空间 的作用了。命名空间就像一个花名册,不同的人给数据起的名字记录在不同的花名册中。我们需要使用一个名字时,让计算机去特定的花名册中寻找就可以了。这样就不会面临两个相同的名字无法区分的情况了。
std 是 standard(标准、规范) 的缩写,是 C++ 标准命名空间。 C++ 开发者们取的名字几乎都在 std 命名空间中。
::
是作用域标识符。 std::cout
的意思,其实就是告诉计算机,要在 std 这个花名册中,去找 cout 这个名字。
我们在写代码时,往往需要使用非常多, C++ 的开发者们起的名字,在每个名字之前,写 std::
就很麻烦,所以我们常常在我们写的代码开头,写上 using namespace std;
,代表着我们告诉计算机,我们写的代码中,使用了 std 这个花名册中的名字,如果计算机看到不认识的名字,就请去 std 这个花名册中找找。这样, C++ 的 Hello World 程序可以改成这样:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
3.4 cout
其实就是 “C++ output” 的缩写。使用它就可以向屏幕输出它后面的内容。 <<
符号,被称为流插入运算符,使用这个这个符号,可以将它后面的项传递给 cout ,从而输出内容。
endl
是 “end line” 的缩写,作用是结束一行,也就是换行。
3.5 return 0
对于 main()
函数来说,它需要一个整数作为返回值,用于告诉使用程序的人,这个程序运行结束,究竟是做完这个程序应该做的事情之后,正常结束了;还是说,程序出了问题,不得不结束了。
按惯例,我们使用 0 ,作为程序正常结束的标志。
4 Hello World 运行与结果
我们点击 “运行” 按钮,就可以尝试运行我们写的代码。运行代码右边的小虫子图标,是 “调试” 的意思,我们也常用。
运行后的结果,会显示在底部。
第一行是我们写的代码,经过编译后生成的可执行文件的位置。
第二行开始,是我们代码向屏幕输出的内容。
最后一行,是我们代码结束时的返回值。因为我们在代码中写了 return 0;
,如果程序正常结束,就返回 0 ,所以退出代码是 0 。