函数!Go-

函数冲呀!假期冲呀!
本篇博客关于库函数 自定义函数 形参 实参 函数调用 嵌套调用及链式访问。


前言

函数这一章节至关重要,可以任何代码编程的实现都离不开函数。 K加油呀!

一、函数是什么?

函数 简而言之:
是指一个程序中的某部分代码,它可以独立完成某项特定任务,由一个或多个语句构成;其一般由一个或多个语句组成,这些代码可成为软件库。
函数


二、C语言中的函数分类

  • 库函数
  • 自定义函数

1.库函数

1)为什么存在库函数:

频繁大量使用的函数被封装到库函数中,减少冗余,大家都可使用,提高代码的可移植性。

2)查询库函数的网站:

(Library-库)
www.cplusplus.com

也可用msdn

3)简单总结 C语言常用库函数

库函数

4)参照文档 学习库函数

实现搜索功能
搜搜
简介:以strcpy(拷贝)为例
简介1
2
可查其所在库函数:
3
通过阅读文档知:strcpy 拷贝结束标志’\0’!!
返回目标空间的起始地址
返回类型:char*

5)代码演练

1.正确拷贝
代码1
2.测试是否拷贝结束标志’\0’
结果:拷贝结束标志!
测试
3.设置接收
接收

4.若目标空间不够

将引发异常,无法通过正常编译
空间

6)memset函数

1.文档大致了解
文档
2.代码实操
注意标注点!
代码

此处可写为强制类型转换补

注:对变量无要求常量or变量

3.以字节为单位设置!!

4.补充:
void 是万能指针,可以接收任意类型指针

5.若想要修改int型,结果将会是:

结果错误!结果
再看改变情况(十六进制下)
改变
小结:memset确实是以字节为单位进行改变的!

7)补充

补充
注意:库函数必须知道的一个秘密就是:使用库函数,必须包含 #include 对应的头文件。


2.自定义函数

1)为什么会存在自定义函数

已存在的库函数不能满足需要,需要程序员自定义函数。

2)函数的组成

自定义函数和库函数一样,有函数名,返回值类型和函数参数。 但是不一样的是这些都是我们自己来设
计。

例如:
函数

3)实例(代码)

1)求两个数中的最大值

注意:此处x y叫做形参(形式参数)
a b叫做实参
代码

2)写一个函数可以交换两个整形变量的内容。
1.不使用函数直接利用中间变量(不满足题意)
中间
2.写一个函数
问题代码:
问题
原因:
实参传给形参时,形参将是实参的一份拷贝!
故:形参改变不影响实参!!

实参 形参的地址不一样!
原因

解决方案:
通过地址入手!
dizhi
3)比较上述两题中:
两个数求最大值可直接交换值 而交换两个数,需通过中间量来实现则需要交换地址实现


三、函数的参数

1.实际参数(实参)

真实传给函数的参数,叫实参。
实参可以是:常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。

2.形式参数(形参)

当形参没有被调用时,其没有被分配内存空间;只能在函数内部使用;函数名后括号内的变量即为形参。

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


四、函数的调用

1.传值调用

对形参的修改不会影响实参!!
适用于:不用对其进行操作的

2.传址调用

要进行操作,设置成指针,对地址进行操作。

  • 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
  • 这种传参方式可以让函数和函数外边的变量建立起正真的联系,也就是函数内部可以直接操作函数外部的变量。

3.实例

1)写一个函数可以判断一个数是不是素数。(100-200)
素数
2)写一个函数判断一年是不是闰年。(1000-2000)
闰年
3)写一个函数,实现一个整形有序数组的二分查找。
二分查找
注:该函数可通过改变int sz 位置为:left right 将范围锁定在某一范围内
修改

4)写一个函数,每调用一次这个函数,就会将num的值增加1。
法1:指针
指针
法2:
2


五、函数的嵌套调用和链式访问

可以嵌套调用,但不可以嵌套定义。
如:以下嵌套定义是错误的!
嵌套定义

1.嵌套调用

例如:
嵌套

2.链式访问

1)定义
把一个函数的返回值作为另一个函数的参数。

2)实例:(注意)
实例
3)小问:
注意:printf函数返回的是打印在屏幕上的字符个数;如果发生错误,则返回负数
scanf函数返回的是成功读到的字符个数
1
区别:区别


总结

忙忙碌碌的一天终于结束了!
愿一切都值得!
星辰大海 未来可期!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Dream是普通小孩耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值