开课吧:教你认识C++基本程序

177 阅读4分钟

俗话说:好的开始是成功的一半。要做一个C++ programmer,首先得知道C++的整体构成,其次能看懂代码,然后再自行编程。下面来带大家认识一下C++的基本程序~

一、C++基础概念

C++是一种通用程序设计语言,支持多重编程模式,例如“过程化程序设计”、“数据抽象”、“面向对象程序设计”、“泛型程序设计”和“设计模式”等。

C++会有其标准版本,按照年份来排为:C++98,C++03,C++11,C++14,C++17,C++20。每个版本会更新一些C++支持的特性,简单区分C++11之前的版本为经典,之后的版本(包含11)为现代化版本。

二、C++源程序结构

让我们看一下程序员通用认知世界的代码在C++当中的实现:


#include <iostream>

using namespace std;


int main()

{

  cout << "Hello This fxxking World!" << endl;

  return 0;

}

  • 第一行的代码#include <iostream> 表示的意思为包含输入输出流文件,因为我们需要在屏幕上输出显示一段话,而这需要”借力“编程语言标准库(人话就是,这些标准库像是工具箱,里面装了一些工具,而我们就是使用这些工具,拿首先需要拿到这个工具箱)。语法层次:其中#是预处理命令的开头,include代表包含,而iostream是标准库的名字,<>是包含系统提供的库。
  • 第二行代码using namespace std;代表使用命名空间std,为了区别某些同名对象和统一化管理,就把他们都定义在一个命名空间当中,方便使用的时候调用(人话就是,上面有了工具箱的概念了,就像刀这个工具,有手术刀,菜刀,指甲刀等等,它们会按照用途放在不同工具仓库中,仓库中可能有一个工具箱也可能有很多工具箱,而这个用途就是区分它们的关键)。语法层次:using就是使用,namespace就是说明是命名空间,std就是一个叫做标准的命名空间。
  • 第四行代码int main()表示是一个叫做main函数的定义整体。main函数也是C-like函数的程序入口,是必不可少的部分(人话就是,要做手术,你得在手术室里使用,函数可以理解为是一个个的工具操作间)。int代表程序的返回值,是整数类型,main是函数的名称,()是参数列表
  • 第五行和第八行的{}代表函数体的起止
  • 第六行代码cout << "Hello This fxxking World!" << endl;表示在屏幕上输出双引号里面的这句话。coutendl就是在iostream当中定义的,cout表示标准输出接口,endl就是end line,也就是换行。<<是表示左移操作符(可以简单的理解为是将右边的内容给左边)
  • 第七行的return 0;就是匹配第4行的int返回值的,表示函数运行到这里结束,并且返回需要的内容(人话就是,这台手术完成了,总得告诉结果吧)

上面就是C++程序的基础结构说明了,但是并没有结束,还有些一些隐式的规则,需要说明。

using namespace std; cout << "Hello This fxxking World!" << endl; return 0; 这些语句结束的时候都带有一个分号,这是因为对于C++程序来说,分号代表一个语句的完结(也就是这件事我说完了)。而且,这三句话是不是都带有一种”操作“的含义呢?所以以后设计C++代码的时候一定要记得在需要加分号的地方加上分号。

int return using namespace 这些我们称为是保留字或者关键字,也就是C++语言自行需要保留的单词,我们不能随意乱用的。

上面这张表就是详细的C++保留字,可否找到我们已经用过的四个保留字?

还有<<这样的称为是操作符,就代表可以进行操作的符号。这样的符号还有许多!

三、C++编译过程

上面所提到的源程序就是程序员写的代码,而这个代码并不能直接让计算机进行识别并运行。还需要编译 链接 运行 三步,才能看到我们想要的结果。

那么一个在Unix-like环境下的程序员是如何完成从源代码到执行的过程呢?

  1. 使用文本编辑器,编写源程序代码

  2. 保存文件拓展名为cpp结尾的文件

  3. 打开终端,进入文件所在目录

  4. 键入g++ 参数 需要编译的文件名(注意,这里有空格)

  5. 回车,查看编程过程是否有错,有错改错,无错继续

  6. 键入./可执行文件名称进行执行程序

  7. 查看执行结果是否有错,有错改错,无错继续工作

  8. 滚回家睡觉,明天继续

Tips:如果是工程级的项目,一般会使用诸如Makefile这样的工具来编译C/C++, 因为有种批处理的操作。

好了,说到这里,去搞个代码试试看吧(不要问代码是谁,干就完了)。