突然想写一份C++教程,并且此教程会尽量使用通俗语言来描述,进入正题!

如果你从来没有接触过编程语言,希望我的教程能够帮助你!

一、代码示例

​ 当然我希望你暂时不要纠结我在写什么,把代码贴在前面是想给你看看,它会是什么样子的;如果

一定要取个名字的话,你可以称这份代码为--“著名的helloworld代码”。

#include <iostream>                                            //头文件

int main()                                                     //主函数
{
std::cout << "hello world!" << std::endl; //语句
return 0;
}

二、结构

现在应该回到上面的代码,看完之后先请你回忆一下它的结构:头文件---函数---语句

函数:

​ 对,我没按照顺序讲,因为我希望你先知道什么是函数;

​ 我想你应该学过初等数学了,数学中的函数式什么样的呢?先来看看这个数学函数:

    y = cos(x)

​ 现在我们又拿它来分析,当然不是分析cos函数的功能和它的性质,而是分析它的结构;

​ 注意到没有,它包含的部分:y、cos、x、()。我们都知道,每输入一个x都会得到一个y,我们先给他们取个名字吧:

​ x一般叫做参数

​ 大家喜欢把y称为输出

​ 至于cos这个东西,一个名字罢了,因为最初发现它的人把它叫做cos,所以后人都把它叫做cos(比如说,如果它的发现者把它称之为abc,那么我们现在可能都把cos叫做abc了),不过我们还是可以给它取个好听一点的名字,叫做函数名称--函数的名称,如果你理解我前面的话,就会知道函数名称就是一个名字罢了;

​ 还有()这个东西,我们就把它叫做括号吧。。。目的是区分函数名称和参数,因为如果不加括号的话,可以想象cos(x)和cosx(x)这两个函数是有区别的。

​ 到此为止,我们分析完了y=cos(x)这个函数的结构,但是在编程世界里,函数的定义就“很广”,不过说回来,如果你记得数学中函数的定义是什么,就会觉得“很广”这个词是多么的不恰当了。

​ 写到这,突然想到一个词“黑盒子”,如果你读了我的文章,我希望你一直都能把函数都看成一个黑盒子!对,这很重要,不管对于你的理解还是以后的代码架构来说,都希望这样--黑盒子

语句:

​ 在示例中,

std::cout << "hello world!" << std::endl;

​ 就是一条语句。通俗的说它就是用来描述的。比如说,描述走路这个功能就需要用语句来描述:

​ 1、抬起左脚;

​ 2、左脚前迈;

​ 3、左脚落地;

​ 4、抬起右脚;

​ 5、右脚前迈;

​ 6、右脚落地;

​ 7、回到第1步;

​ 上述是用来描述走路的过程的语句,不过在此需要说明的是:抬脚怎么抬?前迈怎么迈?落地怎么落?这些都可以用前面讲的知识来描述,他们叫做函数,是个黑盒子,因为你并不知道抬脚等等行为的内部实现方法是什么。

​ 再回到前面1-7步描述的是“走路”,在这里“走路”你可以理解为一个函数,不过它没有一个明显的、看得到的返回值,我们把这种看不到返回值的东西叫做空,用void表示,不理解?没关系,以后会见到它的!

​ 通过上面的讲解,你需要知道语句是为函数服务的,也就是说函数是由语句构成的。语句是用来描述函数功能的实现方法的。

​ 如果你已经理解了语句,那么再看看下面的代码:

x = 0.5;			//这是一条语句
y = cos(x); //这是一条语句

​ 你应该已经发现,我们说的语句在其最后都加了“;”分号--半角分号。

头文件:

​ 在一份大的工程中,我们通常会写很多各式各样的“函数”,这么多函数都放在一起显然是不太合理的,显得多么的杂乱无章啊!这时候我们就可以用头文件来区分这些格式各样的函数,通常我会习惯把执行功能具有相关性的“函数”都放在一个头文件中,并且给这个文件取一个能描述它大概功能的名字,所以头文件可以描述为一个包含了一些“函数”的文件,当然这个描述实际上是不准确的,就连我在这段话中说的“函数”这个词都是不准确的,不过在你还没有深入了解时,这样的说法大概是可以的。

​ 现在,你已经知道头文件是包含了各式各样的函数的。所以当你想使用某个函数时,请考虑它在哪个头文件下,看一段代码:

int main()
{
std::cout << "hello world!" << std::endl;
return 0;
}

​ 代码将会出错,你看这份代码和最开始的代码有什么区别?缺少下面这条语句:

#include <iostream>

​ 因为main函数里面用到了std::cout 和 std::endl,但是并没说明它们从哪来--不是凭空产生,所以它们都是没有定义的。

​ 应该能体会到头文件的用处了吧?

PS:到这里写完了第一部分,以后可能还会修正部分语言的描述,有什么问题也请告诉我--内容或者你的疑问。

至于会不会有新的文章...先看看有没有人看吧~还是希望我能教一些人的,没人看的话就会没有动力;看的人多了,我就会尽快更新。

C++教程之初识编程的更多相关文章

  1. 前端组件化Polymer入门教程(1)——初识&&安装

    前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...

  2. Java基础教程:网络编程

    Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...

  3. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  4. Java基础教程:面向对象编程[1]

    Java基础教程:面向对象编程 内容大纲 Java语言概述 Java语言特点 1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象.总之,Everything is object! 2.平台 ...

  5. Java基础教程:JDBC编程

    Java基础教程:JDBC编程 1.什么是JDBC JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. JDBC A ...

  6. Java基础教程:面向对象编程[3]

    Java基础教程:面向对象编程[3] 内容大纲 基础编程 获取用户输入 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入.我们可以查看Ja ...

  7. ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 基础教程总结 ASP.NET Core 基础教程总算是有了个简单 ...

  8. ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 登录登出 上一章节我们总算完善了注册的功能,而且也添加了一个用户,现 ...

  9. ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新增用户 上一章节我们实现了一个注册表单,但也留了一些东西还没完成, ...

随机推荐

  1. FFMpeg编译之路

    为了编译这个东西,快折腾了一个星期了.期间经历了很多痛苦的过程,今天我把整个过程,以及在这个过程的感悟写下来,以备日后查看,也希望能帮到一些像我一样的兄弟姐妹. 在这一个星期里前前后后加起来总共使用了 ...

  2. springMVC 中的restful 架构风格

    RESTful架构 : 是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. ...

  3. ubuntu16 关于root的使用

    ubuntu新版本安全性提升了很多,root用户的权限不像centos那样获取root的方式,直接su即可.ubuntu需要手动配置root账户以及密码. 配置方式: sudo passwd root ...

  4. 帧同步(LockStep)该如何反外挂

    在中国的游戏环境下,反挂已经成为了游戏开发的重中之重,甚至能决定一款游戏的生死,吃鸡就是一个典型的案例.目前参与了了一款动作射击的MOBA类游戏的开发,同步方案上选择了帧同步技术(LockStep而非 ...

  5. Interesting卡常数

    C++ Interesting卡常数 作为一名OIer,在Noip中卡(kǎ 我就爱读kǎ)常数可以说是必备技巧.在此总结一下我所知卡常数的神奇手法: IO优化 fread 和 fwrite ,如果还 ...

  6. DevOps之二 Maven的安装与配置

    CentOS7 安装Maven 一.安装Maven mkdir -p /usr/local/maven3wget http://mirrors.hust.edu.cn/apache/maven/mav ...

  7. 20岁少年小伙利用Python_SVM预测股票趋势月入十万!

      在做数据预处理的时候,超额收益率是股票行业里的一个专有名词,指大于无风险投资的收益率,在我国无风险投资收益率即是银行定期存款. pycharm + anaconda3.6开发,涉及到的第三方库有p ...

  8. display的属性值测试

    由于在学习CSS的display的属性值只针对block.inline.inline-block和flex进行过了解,并且自己观察得知列表中li的display属性是list-item,而想要触发BF ...

  9. 写XML

    //创XML建对象 XmlDocument doc = new XmlDocument(); //bool a = false; //声明根节点 XmlElement books; //判断文件是否存 ...

  10. Vim手册

    什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是 ...