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

news2025/9/23 20:10:45

小叮当的任意门

    • 1. 函数是什么?
    • 2. C语言中的函数分类
      • 1. 库函数
      • 2. 自定义函数
    • 3. 函数的参数
      • 1. 实际参数(实参)
      • 2. 形式参数(形参)
    • 4. 函数的调用
      • 1. 传值调用
      • 2. 传址调用
    • 练习
      • 1. 写一个函数可以判断一个数是不是素数
      • 三级标题

1. 函数是什么?

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

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

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

2. C语言中的函数分类

1. 库函数

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

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

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

在这里插入图片描述

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

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

2. 自定义函数

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

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

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

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

3. 函数的参数

1. 实际参数(实参)

在这里插入图片描述

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

2. 形式参数(形参)

在这里插入图片描述

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

4. 函数的调用

1. 传值调用

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

2. 传址调用

在这里插入图片描述

这就是直接传地址了。

练习

俗话说光听不练啥也不会

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

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

三级标题

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5分钟实现「视频检索」:基于内容理解,无需任何标签

Notebook 教程&#xff1a;text-video retrieval 「视频检索」任务就是输入一段文本&#xff0c;检索出最符合文本描述的视频。随着各类视频平台的兴起和火爆&#xff0c;网络上视频的数量呈现井喷式增长&#xff0c;「视频检索」成为人们高效查找视频的一项新需求。传统的视频…

Matlab点云处理及可视化第1期—基于KD树的邻域点搜索(柱状邻域、球状邻域及KNN)

目录 1 概述 2 代码实现 3 可视化验证 数据及完整代码获取方式&#xff1a; 观前提示&#xff1a;本文文字内容请勿直接用于论文写作&#xff0c;否则后果自负。 特别提示&#xff1a;《Matlab点云处理及可视化》系列文章旨在为初入点云处理领域的朋友提供一份较为权威、可…

MR直播(混合现实直播)做一场高品质企业培训

阿酷TONY / 2022-11-18 / 长沙 MR&#xff0c;是英文Mixed Reality两个单词的缩写&#xff0c;中文翻译为混合现实。 MR混合现实直播技术是通过在现实环境中引入虚拟场景信息&#xff0c;增强用户体验的真实感&#xff0c;具有真实性、实时互动性等特点。 MR直播解决方案是深…

基于springboot农产品交易平台的设计与实现

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于特色农产品电商平台 当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了特色农产品电商平台&#xff0c;它彻底…

软件需求分析——需求的理论基础

如果有兴趣了解更多相关内容&#xff0c;可以来我的个人网站看看&#xff1a;瞳孔空间 一&#xff1a;需求的涵义 研究对象&#xff1a;软件加强型系统中的软件 软件加强型系统&#xff1a;泛指由计算机技术支持的互相联系着的一组人类活动组成的系统。与物理设备和人类社会…

linux网络协议栈源码分析 - 传输层(TCP的输出)

1、TCP write系统调用(tcp_sendmsg) 1.1、write系统调用 socket的write系统调用栈: write最终调用tcp_sendmsg发送消息。 1.2、tcp_sendmsg报文分段 tcp_sendmsg主要是对用户的消息按MSS进行分段、添加到发送队列并将用户数据拷贝到分段里面&#xff0c;根据相关判断设置PSH标…

[附源码]SSM计算机毕业设计超市收银系统论文JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

学生台灯是灯管的好还是led的好?分享学生专用台灯第一品牌

给学生使用的话肯定是led灯更好的&#xff0c;主要是对眼睛有保护作用的&#xff0c;灯管一般当做主要照明灯具是可以的&#xff0c;在家中客厅里&#xff0c;卧室就是灯管&#xff0c;使用led灯是想要补足亮度的&#xff0c;全光谱的国AA级台灯&#xff0c;更健康、更适应人类…

计算机网络---ARP、DHCP与ICMP

&#xff08;一&#xff09;IP 地址与硬件地址 IP地址是网络层使用的地址&#xff0c;它是分层次等级的。硬件地址是数据链路层使用的地址&#xff08;MAC地址&#xff09;&#xff0c;它是平面式的。在网络层及网络层之上使用IP地址&#xff0c;IP地址放在IP数据报的首部&…

并肩刘德华,对战周杰伦,腾格尔老师线上演唱会即将拉开帷幕

在刚刚结束的第三十五届金鸡奖上面&#xff0c;著名爱国艺人刘德华&#xff0c;又一次出现在大众的视野当中。来自香港的天王刘德华&#xff0c;是一个著名的音乐人和演员&#xff0c;他拳拳的爱国之情&#xff0c;也感动了无数的粉丝。 刘德华作为中国华语乐坛的中坚力量&…

22071班(11月18日)

1.在串口工具进行输入&#xff1a; echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ----…

【附源码】计算机毕业设计JAVA校园跑腿平台

【附源码】计算机毕业设计JAVA校园跑腿平台 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA mybati…

什么是PaaS平台

PaaS平台概述 PaaS平台通常是基于IaaS平台构建的&#xff0c;PaaS平台和IaaS平台最大的差别是需求即服务。所有的管理都是以服务为粒度的&#xff0c;在IaaS以资源管理为中心的平台上提供了更高层次的抽象。 PaaS的本质 &#xff08;1&#xff09;运维自动化&#xff0c;故障…

统计聚类法的基本步骤:

统计聚类法的基本步骤&#xff1a; 1>形成数据框 2>计算距离阵 计算n个样品两两间的距离D。 3>进行系统聚类 (I&#xff09;构造n个类,每个类只包含一个样品; (2&#xff09;合并距离最近的两类为一新类; (3&#xff09;计算新类与当前各类的距离,若类个数为1,…

观测云产品更新|Pipeline 使用体验优化;支持写入用户的自定义事件;自定义查看器支持选择更多类型的数据等

观测云更新 Pipeline 使用体验优化 Pipeline 支持过滤条件配置多选 支持将任意一个 Pipeline 脚本设置为“默认 Pipeline 脚本“&#xff0c;若当前数据类型在匹配 Pipeline 处理的时候&#xff0c;未匹配到其他的 Pipeline 脚本&#xff0c;则数据会按照默认 Pipeline 脚本的…

vs2017编译的64位libssh2库

需求&#xff1a;使用sftp上传下载文件 环境&#xff1a;windows vs2017 参考 链接: link 链接: link 编译 环境准备 libssh2依赖于openssl和zlib&#xff0c;所以需要有所以需要先编译&#xff1a;openssl和zlib才行。openssl和zlib。openssl和zlib我是下载人家编译好的…

【MySQL基础】数据库系统之关系型数据库与非关系型数据库

目录 一、数据库系统 1. 数据库 2. 数据库应用 3. 数据库管理系统&#xff08;数据库软件&#xff09; 3.1关系型数据库【RDBMS】 3.2非关系型数据库【NoSQL】 4. SQL和数据库管理系统的关系 5. 关系型数据库管理系统的组成 &#x1f49f; 创作不易&#xff0c;不妨点…

DIY CY7C68013A模块为逻辑分析仪

DIY CY7C68013A模块为逻辑分析仪摘要工具软件步骤参考资料&#xff1a;摘要 将淘宝购买的CY7C68013A模块修改为8通道逻辑分析仪。 购买的CY7C68013A模块如下&#xff1a; 工具软件 Zadig&#xff1a;用于安装逻辑分析仪驱动。 PulseView&#xff1a;Sigrok逻辑分析仪应用软…

Python面向对象2-继承-

文章目录目标一. 继承的概念二. 单继承三. 多继承 [python又支持多继承了]四. 子类重写父类同名方法和属性 #TODO目标 继承的概念单继承多继承子类重写父类的同名属性和方法子类调用父类的同名属性和方法多层继承super()私有属性和私有方法 一. 继承的概念 生活中的继承&…

实验(三):单片机I/O口实验-模拟开关灯

一、实验目的与任务 实验目的&#xff1a; 1&#xff0e;掌握单片机I/O口输入输出使用&#xff1b; 2&#xff0e;掌握单片机I/O口位操作的编程。 任务&#xff1a; 1.根据要求编写程序&#xff0c;并写出原理性注释&#xff1b; 2. 检查程序运行的结果&#xff0c;分析一下是…