突然想写一份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. Day12 CSS简单用法

    当我想要将html中的部分属性修改的时候,如果单个改的话,费时费力,这时候我就需要利用css和html结合起来了. <head> <meta charset="UTF-8& ...

  2. 与班尼特·胡迪一起找简单规律(HZOJ-2262)

    与班尼特·胡迪一起找简单规律 Time Limit:  1 s      Memory Limit:   256 MB Description 班尼特·胡迪发现了一个简单规律 给定一个数列,1 , 1 ...

  3. java float double精度为什么会丢失?浅谈java的浮点数精度问题 【转】

    由于对float或double 的使用不当,可能会出现精度丢失的问题.问题大概情况可以通过如下代码理解: public class FloatDoubleTest { public static vo ...

  4. MIT算法导论课程

    http://open.163.com/movie/2010/12/G/F/M6UTT5U0I_M6V2T1JGF.html

  5. 洛谷 P2491 解题报告

    P2491 消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个 ...

  6. (干货)微信小程序之转发好友

    今天简单地说下微信小程序的转发功能,为什么要简单的说下呢,因为主要讲的就是转发给好友或者群组,还有一种是分享到朋友圈,这种就比较复杂一点了,先稍微透漏一点,分享到朋友圈主要是两种方法,一种是后台直接生 ...

  7. QT5:C++实现基于Multimedia的音乐播放器(序)

    前段时间C++课设,决定做个播放器,于是参考了网上的代码后,做了个很简陋的音乐播放器(只写了MP3格式)出来,虽然功能甚少,但还是决定把过程记录一下. 成品如下图: 播放器功能: 上.下一首,音量控制 ...

  8. ubuntukylin18.04Lts和deepin15.5与win10 1803双系统安装

    我首先安装的是ubuntu kylin(中文名优麒麟) 1.计算机右键选择管理磁盘,压缩卷设置空闲空间(第7步分区用) 2.重启时fn+f1进入bios设置界面. 3.关闭安全模式和快速启动,将boo ...

  9. Scrapy 1.4 文档 01 初窥 Scrapy

    初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping ...

  10. 聊聊Spring Cloud版本的那些事儿

    说说Spring Cloud版本的那些事儿. 版本命名 之前提到过,Spring Cloud是一个拥有诸多子项目的大型综合项目,原则上其子项目也都维护着自己的发布版本号.那么每一个Spring Clo ...