C++教程之初识编程
突然想写一份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++教程之初识编程的更多相关文章
- 前端组件化Polymer入门教程(1)——初识&&安装
前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...
- Java基础教程:网络编程
Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...
- Java基础教程:面向对象编程[2]
Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...
- Java基础教程:面向对象编程[1]
Java基础教程:面向对象编程 内容大纲 Java语言概述 Java语言特点 1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象.总之,Everything is object! 2.平台 ...
- Java基础教程:JDBC编程
Java基础教程:JDBC编程 1.什么是JDBC JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. JDBC A ...
- Java基础教程:面向对象编程[3]
Java基础教程:面向对象编程[3] 内容大纲 基础编程 获取用户输入 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入.我们可以查看Ja ...
- ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 基础教程总结 ASP.NET Core 基础教程总算是有了个简单 ...
- ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 登录登出 上一章节我们总算完善了注册的功能,而且也添加了一个用户,现 ...
- ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新增用户 上一章节我们实现了一个注册表单,但也留了一些东西还没完成, ...
随机推荐
- Day12 CSS简单用法
当我想要将html中的部分属性修改的时候,如果单个改的话,费时费力,这时候我就需要利用css和html结合起来了. <head> <meta charset="UTF-8& ...
- 与班尼特·胡迪一起找简单规律(HZOJ-2262)
与班尼特·胡迪一起找简单规律 Time Limit: 1 s Memory Limit: 256 MB Description 班尼特·胡迪发现了一个简单规律 给定一个数列,1 , 1 ...
- java float double精度为什么会丢失?浅谈java的浮点数精度问题 【转】
由于对float或double 的使用不当,可能会出现精度丢失的问题.问题大概情况可以通过如下代码理解: public class FloatDoubleTest { public static vo ...
- MIT算法导论课程
http://open.163.com/movie/2010/12/G/F/M6UTT5U0I_M6V2T1JGF.html
- 洛谷 P2491 解题报告
P2491 消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个 ...
- (干货)微信小程序之转发好友
今天简单地说下微信小程序的转发功能,为什么要简单的说下呢,因为主要讲的就是转发给好友或者群组,还有一种是分享到朋友圈,这种就比较复杂一点了,先稍微透漏一点,分享到朋友圈主要是两种方法,一种是后台直接生 ...
- QT5:C++实现基于Multimedia的音乐播放器(序)
前段时间C++课设,决定做个播放器,于是参考了网上的代码后,做了个很简陋的音乐播放器(只写了MP3格式)出来,虽然功能甚少,但还是决定把过程记录一下. 成品如下图: 播放器功能: 上.下一首,音量控制 ...
- ubuntukylin18.04Lts和deepin15.5与win10 1803双系统安装
我首先安装的是ubuntu kylin(中文名优麒麟) 1.计算机右键选择管理磁盘,压缩卷设置空闲空间(第7步分区用) 2.重启时fn+f1进入bios设置界面. 3.关闭安全模式和快速启动,将boo ...
- Scrapy 1.4 文档 01 初窥 Scrapy
初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping ...
- 聊聊Spring Cloud版本的那些事儿
说说Spring Cloud版本的那些事儿. 版本命名 之前提到过,Spring Cloud是一个拥有诸多子项目的大型综合项目,原则上其子项目也都维护着自己的发布版本号.那么每一个Spring Clo ...