突然想写一份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. 2T以上的盘怎么分区, 利用parted创建 linuxTB硬盘GPT分区

    parted创建GPT分区(fdisk不支持创建GPT分区,GPT支持大于2TB分区,MBR不支持) 介绍2种分区表: MBR分区表:(MBR含义:主引导记录) 所支持的最大卷:2T (T; tera ...

  2. BugFix:URL or HTTP headers are too long (IP=127.0.0.1)

    错误提示: URL or HTTP headers are too long (IP=127.0.0.1) com.caucho.server.dispatch.BadRequestException ...

  3. C++判断字符串是否为空的一个小问题

    刚才visual studio下处理一个函数字符串入参,判断入参字符串是否为空有点小问题. 接口函数声明是这样的:SHORT GETWFSINFPINKEYDETAIL(LPCTSTR strKeyN ...

  4. Java中浮点数的精度问题 【转】

    当您在计算Money的时候,请看好了!!!要不损失了别后悔!!! 现象1: public static void main(String[] args) { System.out.println(0. ...

  5. Apache 、Tomcat、Nginx的区别

    一. 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上.其属于应用服务器.Apache支持支持模块多,性能稳定,Apache本身是 ...

  6. 团队项目第二阶段个人进展——Day7

    一.昨天工作总结 冲刺第七天,动手完成了一个demo来实现数据的上传与下载 二.遇到的问题 代码逻辑没看太懂 三.今日工作规划 对发布页面的数据进行处理,实现能够请求和响应,并学习如何实现图片的上传与 ...

  7. java(一、概念和开发工具)

    Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...

  8. 什么是web service ?

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是Web ...

  9. 使用crypto-js对数据进行AES加密、解密

    前段时间做项目有用到数据加密,前端加密,后端解密(前端也可以解密),话不多说进入正题: 第一步: npm i crypto-js -S 第二步: 在需要加密或解密的地方引入crypto-js: imp ...

  10. Spring @Conditional注解的使用

    Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置. 下面来介绍如何使用Condition 首先写一个类 ...