3分钟读懂C语言函数:这些例子一看就懂!|一键删除账户教学

理论+应用教学篇

最近发现,有些小伙伴对C语言的函数有些难以理解,其实呢,C语言的函数很好理解,只不过部分人在学习的时候,没有找到好的例子来类比理解而已。这篇文章会教大家如何去理解C语言的函数,也就是俗称的讲理论,但是这篇文章的理论会十分有利于大家来理解。

相信大多数人都不怎么喜欢听别人“讲理论”,而是喜欢实际的操作一遍,小编也深有体会哈。所以!这篇文章先让大家理解函数字面上的意思,然后教大家把“函数知识”应用到现实中来,怎么应用呢?这里教大家做一个小程序——一键删除对方电脑账户。

该程序实例仅用来当做教学例子哦

理论篇

函数是什么?

对于这个问题,官方的解释是“函数是用于完成特定任务的程序代码的自包含单元”,但是究竟怎么理解这句话呢?

举个例子,C语言中的printf()函数,这个函数就是用于完成特定任务的程序代码集合,用于完成什么特定任务呢?printf()能将字符打印到屏幕上,这就是它所完成的任务。但是什么是自包含呢?现在我们举个例子↓

自包含

非自包含

从上面这个例子来看,自包含说的是,这个函数能独立运行、编译、可移植,不需要其他函数来支持,例如,图中的非自包含,这个函数离开了printf()函数就不能运行了,所以,这个算是不独立运行的了。

小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程

为什么要使用函数呢?

用简单一句话来回答这个问题:“为了方便、为了安全”。

为了方便是怎么回事呢?首先,函数是一个可移植的代码集合,也就是说,一个完整的函数能够在任何地方使用,函数就是一个模块。一个函数会实现某一个特定功能,例如:“使计算机嗡鸣”,要实现这个功能可能需要上百行代码,而我们为了方便,将这些代码封装在这个函数里面,我们要使计算机嗡鸣的时候,只要调用函数就行了。举个例子↓

假设汽车是一个程序,而传动系统、制动系统、行走系统、转向系统我们称它为函数,程序离开函数就无法运行,而函数则可以随便移植,例如,一辆汽车的制动系统一直到另一辆车身上也能运行

为什么是安全的呢?很多函数它能够完成特定的功能,而函数里面具体的算法、代码对外是不可见的、是封装好的,使用函数的人只需要了解这个函数能够完成什么功能就行了,并不需要了解函数内部具体的实现算法。这个规则在开发软件的时候特别重要。你想一下,你辛辛苦苦写好的程序,被别人不费吹灰之力就破解了,这是什么感受呢?

如何用一句话来理解函数?

一般来说,一个C函数会有一个参数,例如printf("XX"),“‘XX’”就是参数,有时候一个函数还能对外输出,例如printf()将“XX”打印到屏幕上,这也是一种输出

要理解很简单,假如你的手里有一个苹果,和一个黑盒子,你把苹果放到黑盒子里,再重新拿出来它就变成了一个梨。这个例子中,苹果是参数,黑盒子是函数,梨是输出

应用篇——一键删除对方账户

这个程序比较简单,我们要做一个能删除计算机账户的函数。这里,函数没有参数,它的功能是:“删除特定的账户”。这里小编用自己的电脑做一个测试,首先在电脑上建立一个名为“H”的账户,然后利用C程序一键删除它!注意:生成的这个程序要以管理员身份运行哦。

别小看这个程序,如果在这个程序之上添加一些特定的功能,就可以在不知不觉中将电脑中的Administrator用户删除,然后把自己设置的账户变成系统超级管理员,这个电脑的“超级权限”就归你了。

下面是源码↓

以上程序实例仅用于举例,不要过度解读哦

原文链接:https://www.jianshu.com/writer#/notebooks/28627489/notes/33368922

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS技术

何为代码质量?——用脑子写代码引言正文总结

为什么项目维护困难、BUG 反复?实际上很多时候就是代码质量的问题。代码架构就像是建筑的钢筋结构,代码细节就像是建筑的内部装修,建筑的抗震等级、简装或豪装完全取...

7720
来自专栏窗户

shell编程/字库裁剪(3)——验证

  程序写完了,必须要验证,这是重要的方法论。因为如果不验证,则不会知道程序写的对还是不对。学过人工智能或者控制论都知道,反馈非常重要,反馈形成闭环,可以用来指...

225100
来自专栏java一日一条

为什么用 Java:一个 Python 程序员告诉你

说实话,本人刚开始的时候也是同样的反应。但是由于Java的类型安全,执行性能和坚如磐石的工具,我渐渐地开始欣赏Java。同时我注意到,现在的Java已今非昔比—...

9810
来自专栏Crossin的编程教室

【Python 第7课】if

感觉又一次被微信坑了。前两天刚说改变课程发送方式,今天微信就突然服务器升级,暂时不能新增接收文章的关键字了。所以这两天,还是用回老方式,直接推送。过去的课程0~...

30460
来自专栏程序员互动联盟

【编程基础】聊聊如何学习Java——Java的特性

上一篇文章聊了学习编程可能会遇到的心里障碍和为什么学习Java,看了网友们的回复小编很激动,我会积极听取网友们的留言,在我以后的文章中改进。现在说Java语言的...

40490
来自专栏算法与数据结构

PTA 银行排队问题之单队列多窗口服务

假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾...

476100
来自专栏Crossin的编程教室

【Python 第33课】 处理文件中的数据

我们已经知道了如何读取和写入文件。有了这两个操作文件的方法,再加上对文件内容的处理,就能写一些小程序,解决不少日常的数据处理工作。 比如我现在拿到一份文档,里面...

35080
来自专栏精讲JAVA

Gof设计模式之七大设计原则(六)

前言 今天的设计原则重理论,举例子只能是文字形式,没法使用代码解释,希望大家可以多读几遍。真正体会到设计原则的好处。每一个设计原则,我都尽量用非...

226100
来自专栏Android开发经验

ExpandableStickyListHeadersListView遇到的一个问题

15540
来自专栏华章科技

入门科普:什么时候要用Python?用哪个版本?什么时候不能用?

Python使用面向对象编程(object-oriented programming,OOP)和构造,你可以像任何其它面向对象的语言一样使用它,譬如Java。

19420

扫码关注云+社区

领取腾讯云代金券