微信号:cpp_coder

介绍:最专业的C/C++编程学习和程序员发展的综合平台.提供C/C++、汇编语言等、STL、MFC、QT等等学习、数据结构算法思维分析、各领域项目经验分享、资源下载、招聘和资讯的综合服务.

不看你会后悔的第一堂C语言课,太精彩了(4)

2018-10-21 10:00 codexia

长按识别关注公众号【CPP技术网】,学习更多有趣的C语言知识哦



    我们已经更新了两篇:

1:《不看你会后悔的第一堂C语言课,太精彩了(1)》 -> 打招呼
2:《不看你会后悔的第一堂C语言课,太精彩了(2)》 -> 办公场地
3:《不看你会后悔的第一堂C语言课,太精彩了(3)》 -> printf工具使用说明
【公众号点击不能跳转,请点击查看原文后再阅读这两篇或者找公众号往期的文章阅读】

    那么本篇文章将讲述最后一个环节,那就是干活的事情啦。我们即将讲解的是用哪些工具干活,如何用这些工具,这些工具如何理解?这也是C语言的语法哦。
    先看看完整的代码:

#include <stdio.h> //打招呼 
int main() //场地 

 int a; 
 printf("请输入一个数字: ");//打扫垃圾,看打扫的范围和说明 
 scanf("%d", &a);//输入工具:打扫->装垃圾的东西 
 printf("谢谢你的配合,你输入的数字是: %d\n", a);//提示打扫结果 
 return 0; 
}


    取出已经讲解的内容,我们剩下的内容有:

int a; 
printf("请输入一个数字: ");//打扫垃圾,看打扫的范围和说明 
scanf("%d", &a);//输入工具:打扫->装垃圾的东西 
printf("谢谢你的配合,你输入的数字是: %d\n", a);//提示打扫结果

    这里拆分一下,分为三个部分:
1.int a;
2.printf
3.scanf
    接上一篇。
    printf中使用的过程中,出现了两个神秘的符号:%d和\n。不过在我们的探索下,已经解开了迷雾。下面继续探索下一个谜,那就是scanf的身世之谜。
    scanf的f,我们在printf里已经讲过了。我们来看scan是什么。
    scan的中文意思是扫描。扫描二维码我们知道吧,不知道的话,用微信扫一扫,扫一下我们的公众号二维码试试就知道了。
    扫描的作用是什么?我们就拿扫描公众号CPP技术网的二维码举例说明。我们要扫码,首先得有一个码才行。你可以看到文章开头和结尾都有一个码,你随便扫哪个都行。扫码的作用是什么呢?还是不知道。到目前为止,我们只知道要扫CPP技术网的二维码才能快速关注我们的公众号,但是还是不知道扫这个码的作用是什么。我告诉你扫公众号二维码的作用,你就明白了这里的scan的作用了。但是答应我一个事哈,关注一下我们的公众号哈,有问题可以在公众号发留言的哦。
    我们有了公众号二维码的图片,你有了手机,然后有了微信,就可以打开微信的扫一扫,然后扫了二维码图片。滴的一声,跳转到了【CPP技术网】的公众号,然后可以点击关注,就关注成功了。这是一个大家非常熟悉的流程了。那这个流程背后到底有什么秘密呢?下面我们来说说它们背后的秘密。
    在扫码的时候,摄像头是在获取外部的景象,扫码是不会去拍照的,而是实时的预览外部的景象的。你开着摄像头,就是不点拍照,此时就是实时预览景象的。摄像头是在工作的,只是没有截取一个画面而已。扫码的时候,微信是在获取外部景象,将实时预览画面的每一个画面当做一个被拍摄的图片进行分析的。微信是在识别画面中可能的二维码。二维码是有格式的,不是什么东西都叫二维码的。所以微信在按照二维码的画面格式去识别二维码,找到之后然后读取二维码里面表示的意思。很幸运,文章开头和结尾的二维码就是我们公众号的信息的。通过这个信息,就可以知道是我们的公众号,然后引导你的微信页面进入我们的公众号的介绍。你可以点击关注来完成关注。
    注意,我们这个过程中,有几个关键点,分别是:二维码图片所在的位置【文章开头和文章结尾】一个图片  图片中有二维码格式的区域  。这是完成本次扫码的关键,缺一不可。
    最终的目的是什么,其实就是输入一个公众号的信息就行了。所以scanf的作用就是用来输入信息的。扫码的意义就在于让我们的输入变得方便了。微信里使用相机来输入的。那我们的程序里是用什么输入的呢?键盘!!!
    键盘的输入,要输入什么,自然就是键盘上可以敲的键代表的符号。所以我们这里的输入的东西的位置就在键盘上,我们通过敲击键盘来实现。相机的输入是通过我们打开扫一扫实现。我们知道在键盘上打字,然后打字后形成一串符号,这些符号就进入了计算机的脑袋里。好比相机预览里的各种画面。我们完成了输入,就好比相机完成了实时预览画面一样。剩下的工作就是微信内部完成的。我们内部就是scanf来完成了。
    我们已经完成了从键盘输入内容到计算机内部,我们得到了输入的内容,下面开始用scanf识别“二维码”吧。
    扫描是要按照一定的格式来扫的,识别二维码自然也是按照二维码的格式来识别的。所以scanf需要控制识别的格式。这个控制也就是我们看到的"%d"了。那么这个格式是如何对应的呢?还记得printf里的%d吗?不记得的话,回头去看看。这两个格式符号是一样的对应关系。printf里的%d是按照格式打印出来,而scanf的%d则是按照格式扫码的。一个进去一个出去,格式控制还是同一个东西。这里也暗含了一个关系,按照%d扫码输入的,自然也得按照%d打印输出咯。存储自然也是要和%d对应才行,否则就会出乱子。关注我们的公众号CPP技术网,你可以留言,说说你是不是想看看会出什么乱子。有必要的话,我们会发文解释的。
    那么scan里面也有逗号,那么在此就不解释了,上一篇已经解释过了。后面出现了新的符号,即&a。
    微信在扫码后,扫到的结果会怎么处理?自然是先存起来,然后再慢慢分析嘛。用一个生活的例子,我们打扫卫生,将扫到的垃圾怎么处理,自然也是先存起来嘛,也就是撞到垃圾桶里先。然后再去倒掉。
    存东西不就要一个装东西的东西嘛。我们这里的a自然就是装我们扫描的输入的东西的地方咯。然而我们要一个垃圾桶,肯定得先弄一个出来呀,不能凭空想象一个垃圾桶,然后将垃圾往里面倒,这样结果还是倒到地上了。
    所以我们可以看到前面有一个:

int a;

    我们扫描输入的时候是按照%d来识别的,我们在printf里已经了解到%d是和int对应的。我们按照一个格式识别出来输入,自然也是要将结果放在一个同样格式的地方的。你不会把一个盒饭放在脏袜子桶里吧。生活要注意细节和质量,类型要一一对应才最合适。C语言里就是非常注重类型的,专业术语叫做强类型。所以C语言也就是强类型语言。C语言简单但是是高质量的,所以经久不衰,是有道理的。
    而&符号,英文读音和at一样的。意义也类似,at表示在哪的意思,指示的是一个位置。我们这里的&自然也是指示一个位置。我们扫描的结果不就是要放到一个位置去吗!这里指示一个位置,多么自然的事情啊。&后面接一个装东西的地方,不就水到渠成嘛。
    所以scanf就是按照指定的格式扫描输入的结果,并存放到&指定的位置去。
    那么到此,第一堂课就讲完了。也不知道讲的好不好,如果你喜欢的话,支持一下,分享给你的伙伴们,关注一下我们的公众号,给我们说说你的感受。如果想继续学习,可以留言。让我们知道你们的心声。如果没有人需要继续学习,也没有需要了解的东西,那可能就不再继续更新此系列了。如果大家都觉得好,给我们留言了,我们知道了,我们会很高兴,尽管累,可能也会继续更新的。为你们扫除编程语言学习的障碍,深入浅出学习,我想一定会事半功倍,每一个人都可以成为计算机天才的。

    

    长按识别关注公众号【CPP技术网】,学习更多有趣的C语言知识哦

    

 
CPP技术网 更多文章 不看你会后悔的第一堂C语言课,太精彩了(3) 不看你会后悔的第一堂C语言课,太精彩了(2) 不看你会后悔的第一堂C语言课,太精彩了(1) 为众人抱薪者,已冻毙于风雪 谷歌最高华裔主管李飞飞离职:既要担起生活的责任,又要对得起梦想
猜您喜欢 微博“异地多活”部署经验谈|运维帮 JsBridge实现JavaScript和Java的互相调用 《近匠》趣播,手机视频聊天的四维社交 日新进用户200W+,解密《龙之谷》手游背后的压测故事 Android Low Memory Killer