成都网站建设设计

将想法与焦点和您一起共享

C语言秃头笔记--函数2-创新互联

上章我们了解的库函数,和个别库函数的使用,这一章我们了解自定义函数

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的铜川网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴! 自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。

但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。

函数的组成:

ret_type fun_name(para1, * )

{

statement;//语句项

}

ret_type 返回类型

fun_name 函数名

para1 函数参数

这里我们运用实例了解:

写一个函数找出两个整数的大值:

bbc5a5f3c6e34454999a83905b11832c.jpg

首先我们先给a,b赋值,然后在主函数调用自定义函数get_max并给予相应的值,

(自定义函数的名称可以随便叫啥,但最好可以让别人大概知道这个函数的作用) 

然后我们打印max,至于具体过程我们交给get_max完成

(上章讲过,函数具体执行过程我们不具体过问,只要给出正确结果就行)

当主函数编译完成后,我们再定义get_max。首先我们根据上面的语法格式定义函数,给予数据类型(int),函数名(get_max),函数参数(int x,int y)

(因为主函数传过来的是整型,所以我们定义时,也应该是整型)

之后我们定义 整型变量 z 并给初值,然后判断x 是否大于 y ,如果大于则 把 x 赋值给 z ,如果不大于则把 y 赋值给 z ,最后我们返回较大值 即,return z

之后我们再来看一个例子:

这里我们要求运用函数交换两个值的位置并打印,如:

4125c029a1ea45dfad385ea464961423.jpg

首先我们定义 整型变量 a,b 然后先打印交换前的值,然后再调用函数swap并给予相应的值

最后我们打印交换后的值

和上一题一样,首先我们根据自定义函数格式定义函数,然后定义一个 整型变量 z ,我们先把 x 的值给 z ,再把 y 的值给 x ,最后我们把  z 的值给 y 完成交换,因为这个函数不需要返回值,所以我们给函数名前面加 void ,

表示不返回任何值,也不需要返回

然后我们运行程序,发现 a 和 b 并没有交换,如图,这是为什么呢?

6f144117e72e4ad7b55010cf20e39c46.jpg

经过调试后我们发现, x  y   和 a  b 的地址不同,是两个毫无关系的空间,如图:

b2c759fcf22349a0a083478c48e832bd.jpg

所以我们在函数中交换时,并没有影响到主函数中,a和b的值

但如果我们可以让函数拿到a和b的地址,是不是就能改变a和b呢?

这里我们运用之前有初步了解的指针知识,写出代码,如:

2403add3a85e45539e3cdc72d45b8c3d.jpg

f040811a4126404d9a61689e621f8cf7.jpg

我们定义一个新的函数swap2,我们将 a 和 b 的地址给予 swap2 ,即( &a  ,&b )。

然后我们在函数中运用整型指针 pa 和 pb 接收,

(这时,我们在 pa 前面加 * 即可表示 a ,在pb前面加 * 即可表示 b )

然后我们定义变量 z ,重复我们第一次代码的过程进行交换,最后我们得到:

3c5576c8ad6b47a0aa45915436af066f.jpg

a 和 b 的位置我们就交换成功了

函数的参数

之后我们回到之前那个问题,为什么我们第一次代码交换失败呢?

这里我们具体介绍一下,首先我们要先了解函数的参数的定义

实际参数(实参)

真实传给函数的参数,叫实参。

实参可以是:常量、变量、表达式、函数等。

无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。

形式参数(形参)

形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。

当我们了解过实参和形参的定义后,我们就能知道为什么我们第一次会交换失败

因为我们主函数中的 a b  是实参,而函数中的 x y 是形参,而形参有自己独立的空间并且在调用完毕后就销毁了,所以我们第一次交换失败了

所以我们可以简单的认为:形参实例化后相当于实参的一份临时拷贝

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:C语言秃头笔记--函数2-创新互联
分享链接:http://chengdu.cdxwcx.cn/article/ddhiog.html