函数(一)

函数是什么?

在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软 件库。

C语言函数的分类

库函数

库函数是C语言系统中自带的函数,为了提高程序的可移植性和效率,C语言将一些常用的函数集成成库函数,来方便开发人员的使用。

库函数的学习可以使用www.cplusplus.com这个网址

在其中我们可以查找到我们需要的函数,其中还有该函数的定义以及举例使用方法。

接下来我将以以strcpy为例来介绍如何使用该网站来学习库函数。

这是strcpy的函数解析,我们可以翻译出这是将一个目标中的字符串复制到另一个字符串中

这是网站中的例子。下面我将用一个例子来说明。

自定义函数

自定义函数分为三个部分

ret_type fun_name(para1, * ) { statement;//语句项 } ret_type 返回类型 fun_name 函数名 para1 函数参数

我们先来看一个最基本的例子,写一个函数来交换两个数字的值。

但是运行结果却并没有像我们想的一样交换了3与5,这是为什么呢?

原因就在于我们主函数里的参数是实际变量,而传给swap函数的变量是形式变量,而形式变量是实际变量的一份拷贝,但是却另外开辟了新的存储空间,当存储空间的地址不同,新函数中交换的值并不会对主函数中的参数造成影响。

如果要解决这一问题,我们就需要传址调用参数而不是传值调用。所谓传址调用函数就是将主函数中实参的地址传递给形参,这样就算形参开辟了新的地址来存放参数,存放的也是实参的地址,我们依然可以通过地址来真正改变实参。所以我们修改程序如下图:

由此我们可以得出一个结论:如果我们不需要改变实参中的值(例如对比大小),只需要对函数进行传值调用即可,如果我们要对实参中的值进行改变(例如交换参数),则需要进行传址调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值