这就是程序员眼中的函数吗?(一)

1. 函数是什么?

在我们过往的学习中,在数学上我们常见到函数的概念。但是你了解C语言中的函数吗?
在维基百科中对函数的定义:子程序

子程序是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被记成为软件库。

请添加图片描述
这就是一个简单求字符串长度的函数.

2. C语言中的函数分类

1. 库函数

请添加图片描述
在这里我们可以看看下面的网址,这是一个不错的查询各个库函数的工具.
请添加图片描述
简单总结,C语言常用的库函数都有:

IO函数
字符串操作函数
字符操作函数
内存操作函数
时间 / 日期操作函数
数字函数
其他库函数

这里是引用
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
这是我们从网址上简单提取的

在这里插入图片描述

这里我们简单运用一下这个库函数,记住每个库函数都是需要引用一个头文件请添加图片描述请添加图片描述我们也可以把它返回到ret中

请添加图片描述请添加图片描述其实 memset —就是设置内存
在这里插入图片描述
请添加图片描述
大家后面可以自己搜索其他库函数运用一下。

2. 自定义函数

在这里插入图片描述但是不一样的是这些都是我们自己来设计,这给程序员一个很大的发挥空间。
请添加图片描述

要知道它是有返回类型,函数名,函数参数,函数体。

我们举个例子:
写一个函数可以找出两个整数中的最大值。
在这里插入图片描述这个就不需要我说了吧
请添加图片描述这样也可以,这里我们运用了三目操作符。
在这里插入图片描述
在这里插入图片描述这里的两个void
一个是函数调用完后什么都不需要返回
另一个是这个函数没有参数,在调用的时候,不能传参。

再举个例子:
写一个函数可以交换两个整形变量的内容
在这里插入图片描述这是一个不错的思路,但是我们是需要在函数里来进行交换
在这里插入图片描述咦,为什么会出现这种情况呀?
请添加图片描述
这个地址都不对于
这是因为:当函数调用的时候,实参传递给形参,这时形参是实参的一份临时拷贝,对形参修改不影响实参。
其实就是创建的形参是独立的空间,而且地方都不对,无论你怎么修改,最后向我们表现出来的数都是不变的。
那我们该怎么优化呢?
请添加图片描述
那么我们还不如直接干指针,找到对于的地址修改。
在这里插入图片描述看看这不就可以了
请添加图片描述

3. 函数的参数

1. 实际参数(实参)

在这里插入图片描述

请添加图片描述列如这样,可以是常数,表达式,函数也可以。

2. 形式参数(形参)

在这里插入图片描述

请添加图片描述
就是临时的。

4. 函数的调用

1. 传值调用

函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。

2. 传址调用

在这里插入图片描述

这就是直接传地址了。

练习

俗话说光听不练啥也不会

1. 写一个函数可以判断一个数是不是素数

请添加图片描述
请添加图片描述
素数 它喵的,今年高考数学有个题就提到了。
除了1和本身,其他的整数都不能被整除的数就叫素数。
但是我们为什么要应用sqrt(开方)库函数呢?
回去问你初中老师去吧
这里要注意是<=
在这里插入图片描述
比如9 不包括3的话,就玩犊子了

三级标题

请添加图片描述
我连条件都写了,这叫啥,这是保姆级讲解。
请添加图片描述
这是正常操作
请添加图片描述
请添加图片描述这个是学以至用,不错
请添加图片描述
看看这个优化的就不错,说明细节的重要性

乌云总会过去,当太阳出来的时候,你是否做好了准备?

守得云开见月明
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

躺平又起来的小萍子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值