# 【知识精讲】你的第一个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`的头文件中已经声明好了,可以直接使用的对象;而另一些可能需要你自己去定义、实现之后,你才可以进一步去进行调用。
这些概念对于你来说,现在可能有些难懂——不过没关系,后面我们还会给你很多的机会慢慢弄懂这些内容的。
- 教材介绍
- 《编程初学入门常识》
- 什么是程序语言
- 【知识精讲】编程与编程语言
- 【选择测试】编程语言分类
- 【知识精讲】高级语言分类
- 【选择测试】编译与解释
- 【选择测试】程序员笑话-Java
- 熟悉键盘上用于编程的键位
- 【知识精讲】认识你的键盘
- 【知识精讲】中文和英文字符
- 【匹配测试】识别中英文符号
- 【选择测试】中英文符号的影响
- 【伴随编程】不要使用中文引号
- 【伴随编程】不要使用中文分号
- 【伴随编程】正确地输入符号
- 【选择测试】找出程序中的错误
- 初始工程师思维
- 【知识精讲】二进制思想
- 【选择测试】程序员笑话-凑整
- 【知识精讲】闭合的逻辑
- 【选择测试】程序员笑话-条件
- 程序员职业与生活
- 【知识精讲】程序员的发展方向
- 【知识精讲】程序员的装备
- 【知识精讲】程序员的健康
- 【选择测试】做一名健康的程序员
- 《C++程序设计》
- 前言
- 【知识精讲】编程与计算机科学
- 【知识精讲】编程与软件工程
- 【知识精讲】如何学习编程
- 你好C++
- 【知识精讲】你好,C++
- 【知识精讲】C++程序是如何开发的
- 【知识精讲】成为一名Power User
- 【伴随编程】让我们一起说你好
- 【知识精讲】你的第一个C++语言程序
- 【伴随命令】编译、运行你的程序
- 【伴随编程】将变量流式输出
- 【选择测试】变量的作用域
- 【知识精讲】变量与数据类型
- 【匹配测试】C++语言的入门概念
- 【知识精讲】在程序中学会换行
- 【选择测试】正确地换行
- 简单数学运算
- 【知识精讲】重新认识基本运算
- 【选择测试】运算符的理解
- 【伴随编程】做一下简单的运算
- 【伴随编程】a 的 n 次方
- 【知识精讲】数学函数
- 【伴随编程】让C++语言变成计算器
- 【伴随编程】计算球的体积
- 【匹配测试】数学世界知多少
- 【知识精讲】在程序中添加注释
- 【选择测试】正确地写注释
- 从伴随输入到变量地址
- 【伴随编程】 一个数字复读机器
- 【选择测试】理解标准输入输出
- 【伴随编程】一个加法计算器
- 【程序设计】A+B+C问题
- 【伴随编程】简单的I/O格式控制
- 【知识精讲】地址与取地址符
- 【伴随编程】看看我们的地址
- 习题一:面积与周长
- 【程序设计】矩形面积与周长
- 【程序设计】三角形面积与周长
- 【程序设计】圆形面积与周长
- 程序中的是与非
- 【知识精讲】是非的表示与关系运算
- 【伴随编程】验一验关系运算式
- 【选择测试】关系运算式求值
- 【知识精讲】如果的意义
- 【伴随编程】分段函数求值
- 【知识精讲】如果之后的如果
- 【伴随编程】五则运算器
- 【选择测试】分支的嵌套
- 【伴随编程】问号表达式
- 【知识精讲】是非之间的逻辑组合
- 【伴随编程】判断闰年
- 【程序设计】日期合法性
- 【知识精讲】多路顺序结构
- 【知识精讲】在程序中学会缩进
- 【选择测试】正确的缩进
- C++程序中的苦力
- 【知识精讲】使用循环结构
- 【选择测试】对比两种循环
- 【伴随编程】使用while循环
- 【填空测试】理解循环结构
- 【知识精讲】自减和自增运算符
- 【伴随编程】使用自增运算符
- 【知识精讲】for循环
- 【选择测试】for循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》