企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 【知识精讲】你的第一个C++语言程序 ## Part1 恭喜你刚刚完成了你的第一个 C++ 语言的程序,不知道你有没有一点点小激动呢? 你刚刚用过`cout`来输出了“Aloha Oe”。你有没有想问一下`cout`是个什么东西呢?其实,我们通过`#include <iostream>`的语句引入了一个名为`iostream`(**i**nput **o**utput **stream**,输入输出流)的**头文件** ,而`cout`则是一个在这个头文件中被定义好的 **对象**,其中包含了许多有用的输入输出相关功能。 对于`cout`对象而言,输出操作由**操作符**`<<`来表达,其作用是将紧随其后的双引号中的字符串输出到标准输出设备(即显示器)上,以换行符`endl`结尾。这些名词的具体含义,我们将在后续的章节中向大家详细介绍——现在,大家只要知道我们可以用`cout<<`来向屏幕上输出内容就可以了。 ## Part2 让我们来整体回顾一下刚才的代码: ~~~ #include<iostream> using std::cout; using std::endl; int main() { cout << "Aloha Oe!" << endl; return 0; } ~~~ 在之前的章节中,大家应该已经知道编译器需要把不同的代码模块连接到一起,才能得到一个可执行的程序——从程序的结构中,我们就可以看出“连接”这个过程存在的意义:我们在主程序中调用了`iostream`对应的库中定义好的`cout`对象,所以连接器在连接的时候,需要把我们写的代码跟相应的库连接起来,才能得到完整的可运行程序。 下面的几行`using`表示使用**命名空间**std中的指定内容(这里使用的是`cout`和`endl`)——同样,现在大家只要知道,如果你想使用`iostream`中的某个对象,比如这里的`cout`的话,那么就必须要加上对应的语句,格式为`using std::XXX;`。关于命名空间的概念,我们将在以后的课程中向大家详细介绍。 ## Part3 现在,去掉了我们已知的代码之后,剩下的代码如下: ~~~ int main() { return 0; } ~~~ 这部分代码其实完成了一个名叫`main`的函数的实现,这个函数是 C++ 语言中规定的程序运行的入口——这一点跟 C 语言是一样的。我们一系列的程序逻辑的拟写,都需要在`main`这个函数的大括号所包围的范围内完成。也就是说,当我们的 C++ 语言程序被编译、连接和运行时,一切有效的逻辑,将会从`main`函数大括号包围范围的第一行语句开始。 你现在还剩下的未解的问题,应该只剩下`int`和`return 0`了吧? ## Part4 在这里,`int`表示了我们预期的`main`函数的返回值类型——**整数**(**int** eger)。而`return 0;`就是在`main`函数的结束位置将一个整数 000 作为`main`函数的返回值交给操作系统的意思。 在编程语言中,函数的定义跟数学中的函数有着些许相似之处,但也有些不同——具体在 C++ 语言中,我们会实现一些自己的函数,形如: ~~~ [返回值类型] [函数名]([参数]) { [函数内的语句] return [返回值]; } ~~~ 然后我们也可以在 C++ 语言中通过 `[函数名]([传入参数值])`的形式调用我们的函数,让函数内语句实现的逻辑被执行。 ## Part5 我们之后开发 C++ 语言程序的过程其实也就是包含了各自逻辑意义的**子程序**的函数或者对象们,把它们调用来、调用去的过程(就像我们已经在 `main` 函数中调用了 `cout` 对象这样)。只不过这些函数/对象中,有一些是外部的头文件中已经定义好的,我们引入了头文件就可以使用,比如`cout`是一个在`iostream`的头文件中已经声明好了,可以直接使用的对象;而另一些可能需要你自己去定义、实现之后,你才可以进一步去进行调用。 这些概念对于你来说,现在可能有些难懂——不过没关系,后面我们还会给你很多的机会慢慢弄懂这些内容的。