深入学习《c语言函数》
📕博主介绍:目前大一正在学习c语言,数据结构,计算机网络。
c语言学习,是为了更好的学习其他的编程语言,C语言是母体语言,是人机交互接近底层的桥梁。
本章学习函数。
让我们开启c语言学习之旅吧!
说到函数,相信大家在高中阶段学习数学的时候一定接触过函数,数学中的函数是一个让人非常头疼的知识点,但是你了解c语言中的函数吗?接下来博主就带你深入学习c语言中的函数。
一.函数是什么?
在之前的学习中其实我们已经接触过一些函数了,比如说我们最熟悉的:printf,scanf,getchar。这些都是c语言的库函数,那么什么是库函数,什么又是函数呢?
在维基百科中对函数的定义:
在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method,subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
现在看这些官方的解释可能会一头雾水,等我们写上几个函数之后,就会有一个更加清晰的认识。
二.c语言中函数的分类
2.1库函数
c语言中把常用的功能,进行了封装,封装成了一个个函数。我们在开发的过程中每个程序员都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。
c语言提供了非常丰富的库函数,在这里我介绍一个类似于库函数字典的网www.cplusplus.com,并且介绍一下使用方法。


注:这是一些头文件,点开就会有相关的函数。

注: 这些函数点开就会有详细的介绍。
比如说:strlen

我们不可能把所有的c语言库函数都学完,所以必须要学会这些工具的使用。
2.2自定义函数
自定义函数和库函数一样,都是由这些零件组成,函数名,返回值类型,和函数参数。但是这些零件都是由自己设计的。
ret_type fun_name(para1, * )
{
statement;//语句项
}
ret_type 返回类型
fun_name 函数名
para1 函数参数
我们可以自己尝试设计一个函数,比如说两个数找最大值。

函数特别像我们生活中的加工厂,比如说我们想生产一个桌子,一般会把木材,各种零件交给工厂,工厂进行加工,然后把桌子给我们。


通过和生活中的一些案例结合起来理解应该会更加容易。
三.函数的参数
3.1实际参数(实参)
真实传给函数的参数,叫实参。
实参可以是:常量、变量、表达式、函数等。
无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形
参。
3.2形式参数(形参)
形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内
存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数
中有效
可以简单的认为:形参是实参的份临时拷贝,对形参的修改不会影响实参。一
四.函数的调用
4.1传值调用
函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。
4.2传址调用
传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操
作函数外部的变量
五.函数的声明和定义
5.1函数的声明
1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数
声明决定不了。
2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。
3. 函数的声明一般要放在头文件中的。
5.2函数的定义
函数的定义是指函数的具体实现,交待函数的功能实现。
相关文章:
深入学习《c语言函数》
📕博主介绍:目前大一正在学习c语言,数据结构,计算机网络。 c语言学习,是为了更好的学习其他的编程语言,C语言是母体语言,是人机交互接近底层的桥梁。 本章学习函数。 让我们开启c语言学习之旅吧…...
Pytorch从零开始实现Vision Transformer (from scratch)
Pytorch从零开始实现Vision Transformer 前言一、Vision Transformer架构介绍1. Patch Embedding2. Multi-Head Attention3. Transformer BlockFeed Forward 二、预备知识1. Einsum2. Einops 三、Vision Transformer代码实现0. 导入库1. Patch Embedding2. Residual & Norm…...
ES6函数新增了哪些扩展?
目录 一、参数二、属性函数的length属性name属性 三、作用域四、严格模式五、箭头函数 一、参数 ES6允许为函数的参数设置默认值 function log(x, y World) {console.log(x, y); }console.log(Hello) // Hello World console.log(Hello, China) // Hello China console.log(…...
【firewalld防火墙】
目录 一、firewalld概述二、firewalld 与 iptables 的区别1、firewalld 区域的概念 三、firewalld防火墙默认的9个区域四、Firewalld 网络区域1、区域介绍2、firewalld数据处理流程 五、firewalld防火墙的配置方法1、使用firewall-cmd 命令行工具。2、使用firewall-config 图形…...
CNNs: ZFNet之CNN的可视化网络介绍
CNNs: ZFNet之CNN的可视化网络介绍 导言Deconvnet1. Unpooling2. ReLU3. Transpose conv AlexNet网络修改AlexNet Deconv网络介绍特征可视化 导言 上一个内容,我们主要学习了AlexNet网络的实现、超参数对网络结果的影响以及网络中涉及到一些其他的知识点࿰…...
云原生之深入解析Airbnb的动态Kubernetes集群扩缩容
一、前言 Airbnb 基础设施的一个重要作用是保证我们的云能够根据需求上升或下降进行自动扩缩容,我们每天的流量波动都非常大,需要依靠动态扩缩容来保证服务的正常运行。为了支持扩缩容,Airbnb 使用了 Kubernetes 编排系统,并且使…...
Django框架之模板其他补充
本篇文章是对django框架模板内容的一些补充。包含注释、html转义和csrf内容。 目录 注释 单行注释 多行注释 HTML转义 Escape Safe Autoescape CSRF 防止csrf方式 表单中使用 ajax请求添加 注释 单行注释 语法:{# 注释内容 #} 示例: {# 注…...
安装Maven 3.6.1:图文详细教程(适用于Windows系统)
一、官网下载对应版本 推荐使用maven3.6.1版本,对应下载链接: Maven3.6.1下载地址 或者,这里提供csdn下载地址,点击下载即可: Maven3.6.1直链下载 其他版本下载地址: 进入网址:http://mave…...
计算机图形学 | 实验八:Phong模型
计算机图形学 | 实验八:Phong模型 计算机图形学 | 实验八:Phong模型Phong模型光源设置 光照计算定向光点光源聚光 华中科技大学《计算机图形学》课程 MOOC地址:计算机图形学(HUST) 计算机图形学 | 实验八:…...
第三十一回:GestureDetector Widget
文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了ListView响应事件的内容t,本章回中将介绍 GestureDetector Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里介绍的GestureDetector是一个事件响应Widget,它可以响应双击事件࿰…...
Java面试知识点(全)-Java并发-多线程JUC三- JUC集合/线程池
Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 JUC集合类 为什么HashTable慢? 它的并发度是什么? 那么ConcurrentHashMap并发度是什么? Hashtable之所以效率低下主要是因为其实现使用了synchro…...
Android 如何获取有效的DeviceId
目录 前言官方唯一标识符建议使用广告 ID使用实例 ID 和 GUID不要使用 MAC 地址标识符特性常见用例和适用的标识符 解决方案DeviceIdANDROID_IDMac地址UUID补充 总结 前言 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可…...
<SQL>《SQL命令(含例句)精心整理版(2)》
《SQL命令(含例句)精心整理版(2)》 跳转《SQL命令(含例句)精心整理版(1)8 函数8.1 文本处理函数8.2 数值处理函数8.3 时间处理函数8.3.1 时间戳转化为自定义格式from_unixtime8.3.2 …...
完全自主研发,聚芯微发布3D dToF图像传感器芯片!
日前,由中国半导体行业协会IC设计分会(ICCAD)、芯原股份、松山湖管委会主办的主题为“AR/VR/XR元宇宙”的“2023松山湖中国IC创新高峰论坛”正式在广东东莞松山湖召开。武汉市聚芯微电子有限责任公司发布了完全自主知识产权的3D dToF图像传感…...
MySQL 事物(w字)
目录 事物 首先我们来看一个简单的问题 什么是事务 为什么会出现事务 事务的版本支持 事务提交方式 事务常见操作方式 设置隔离级别 事物操作 事物结论 事务隔离级别 理解隔离性 隔离级别 查看与设置隔离性 注意可重复读【Repeatable Read】的可能问题ÿ…...
字节跳动测试岗四面总结....
字节一面 1、 简单做一下自我介绍 2、 简要介绍一下项目/你负责的模块/选一个模块说一下你设计的用例 3 、get请求和post请求的区别 4、 如何判断前后端bug/3xx是什么意思 5、 说一下XXX项目中你做的接口测试/做了多少次 6、 http和https的区别 7、 考了几个ADB命令/查看…...
基于.NetCore开源的Windows的GIF录屏工具
推荐一个Github上Start超过20K的超火、好用的屏幕截图转换为 GIF 动图开源项目。 项目简介 这是基于.Net Core WPF 开发的、开源项目,可将屏幕截图转为 GIF 动画。它的核心功能是能够简单、快速地截取整个屏幕或者选定区域,并将其转为 GIF动画&#x…...
PCB 基础~典型的PCB设计流程,典型的PCB制造流程
典型的PCB设计流程 典型的PCB制造流程 • 从客户手中拿到Gerber, Drill以及其它PCB相关文件 • 准备PCB基片和薄片 – 铜箔的底片会被粘合在基材上 • 内层图像蚀刻 – 抗腐蚀的化学药水会涂在需要保留的铜箔上(例如走线和过孔) – 其他药水…...
Python logging使用
目录 logging模块 logging核心组件 logger handler StreamHandler:把日志内容在控制台中输出 FileHandler:把日志内容写入到文件中 filter formatter 注意日志级别的继承问题 logger.exception 上述样例的整体代码 日志的配置文件及其模板 lo…...
红黑树的实现原理和应用场景
红黑树的实现原理和应用场景; 有如图所示的表,现在希望查询的结果将列成行 建表语句如下: CREATE TABLE TEST_TB_GRADE2 ( ID int(10) NOT NULL AUTO_INCREMENT, USER_NAME varchar(20) DEFAULT NULL, CN_SCORE float DEFAULT NU…...
CogVideoX-2b实战落地:中小企业低成本视频制作新路径
CogVideoX-2b实战落地:中小企业低成本视频制作新路径 1. 引言:视频制作的门槛,真的降下来了吗? 对于很多中小企业的市场、运营或内容团队来说,制作一个高质量的视频,曾经是一件既费钱又费时的事情。要么外…...
利用 AI 提升开发效率:一款简洁实用的对话工具分享
在日常开发与技术学习过程中,合理使用 AI 工具已经成为提升效率的常见方式。无论是快速生成代码片段、梳理业务逻辑、解释技术概念,还是辅助撰写技术文档,一个稳定易用的 AI 工具都能有效减少重复工作,让我们更专注于核心技术实现…...
Debian系统安装与配置全攻略:从下载到优化
1. 为什么选择Debian系统 第一次接触Linux系统时,面对众多发行版的选择确实容易让人眼花缭乱。经过多年使用,我发现Debian特别适合作为长期稳定的工作环境。它不仅被广泛应用于服务器领域,也是许多热门发行版(如Ubuntu、Kali Lin…...
5分钟部署MinerU 2.5-1.2B:PDF转Markdown零门槛入门教程
5分钟部署MinerU 2.5-1.2B:PDF转Markdown零门槛入门教程 1. 为什么选择MinerU处理PDF文档 在日常工作和学习中,我们经常需要处理PDF文档。无论是技术文档、学术论文还是商业报告,PDF格式因其良好的跨平台兼容性而广受欢迎。然而,…...
OpenClaw技能扩展指南:为Qwen3-4B-Thinking添加公众号发布模块
OpenClaw技能扩展指南:为Qwen3-4B-Thinking添加公众号发布模块 1. 为什么需要公众号发布技能 上周我尝试用OpenClaw自动整理技术文档时,突然想到个痛点:每次写完文章都要手动复制到公众号后台,调整格式、上传封面、设置摘要&…...
基于AT89C51单片机的智能抢答器系统设计与实现
1. 智能抢答器系统概述 在各类知识竞赛和课堂互动中,抢答环节往往是气氛最热烈的部分。传统的手动抢答方式容易产生争议,而基于AT89C51单片机的智能抢答器系统则完美解决了这个问题。这个系统不仅能准确识别最先按下抢答键的选手,还能通过声音…...
[特殊字符] 2026年硕博必看!参考文献引用格式全攻略:从手动调格式到一键智能引用
🔥 你是否正在为论文的参考文献格式而抓狂?手动调整APA、MLA、GB/T 7714格式,一个标点符号错误就要重新来?本文为2026年的硕博生提供最全面的文献引用工具对比,重点推荐Scholaread一键智能引用功能,支持9种…...
[RL]强化学习指导搭建IC2E核反应堆
Minecraft 工业2 实验版核反应堆计算 强化学习模块训练路径 最近在玩Minecraft IC2 Classic,但是对于摆核反应堆总是感觉不是很得心应手,不管怎么摆效率都很低,为了解决这个问题,所以我写了一个强化学习的模块,让神经网…...
OpenClaw学习助手:Phi-3-mini-128k-instruct自动生成技术问答集
OpenClaw学习助手:Phi-3-mini-128k-instruct自动生成技术问答集 1. 为什么需要自动化学习助手 作为一名技术文档的深度用户,我经常面临一个困境:阅读大量文档后,如何快速检验自己的理解是否正确?传统做法是手动整理问…...
生产环境部署 AI Agent 的最佳实践
生产环境部署 AI Agent 的最佳实践 第一部分 生产AI Agent的爆发与部署困境深度剖析 (本部分约12000字) 1.1 核心概念:从“玩具Agent”到“生产级Agent”的定义边界 1.1.1 什么是广义的AI Agent? 在过去两年里,“AI Agent”无疑是大模型(LLMs)生态系统中最炙手可热的…...
