news 2026/5/17 3:35:33

c语言中的函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c语言中的函数

什么是函数

在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

-----------------------------------------------------------------------------------------------------------------------------

1.库函数

比如我们在写c语言代码时,想把东西打印到屏幕上,会经常用到一个库函数printf,或者我们在计算一个数的几次方,会用到pow。如果我们每次写一个代码,这些函数都要由我们自己来完成,那么每个人写出的对于这一功能实现代码可能是不一样的,而每个程序员的能力不同,设计出来的函数算法也可能不同,为了支持可移植性和提高程序的效率,c语言就提供了库函数。

常见的库函数

IO函数 input output

字符串操作函数

内存操作函数

时间/日期函数

数学函数

其他库函数

---------------------------------------------------------------------------------------------------------------------------------

2.自定义函数

由自己来设计的函数,和库函数一样,有函数名,返回值类型和函数参数。格式如下:

[返回类型] [函数名]([参数类型1] [参数名1], [参数类型2] [参数名2], ...) { // 函数体:实现具体功能的代码 [return 返回值;] // 无返回值(void)时可省略return }

若函数没有返回值,则在函数名前加加上一个void,而如果函数不需要给它传参数,可以在后面的括号里加void。

---------------------------------------------------------------------------------------------------------------------------------

实际参数(实参):

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

形式参数(形参):

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

---------------------------------------------------------------------------------------------------------------------------------

传值调用和传址调用

现在写一个函数Swap,用来交换a和b的值。运行上述代码,发现a和b的值并没有交换。

这是因为x,y和a,b分别占有不同的内存块。假设他们的内存地址如下

虽然把a的值给了x,b的值给了y。但是因为他们所占有的内存块不同,所以对x,y的修改不会影响a和b。这种方法叫做传值调用,适合用于不会修改变量的函数,比如,写一个比较2个数大小的函数,只需要对变量的大小进行判断,而不需要对变量进行更改。

那如果想要交换a,b,我们可以怎么做呢?

我们可以把函数的地址给传给x,y,再用解引用操作符。这样就可以把函数内部的变量和函数外部长生联系。

这种方法叫传址调用,这种方法可以让函数和函数外边的变量建立起真正的联系。

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

在 C 语言中,函数的嵌套调用指的是:在一个函数的函数体内部,调用另一个函数(甚至多个函数)的行为。简单来说,就是 “函数调用函数”。

注意:C 语言允许嵌套调用,但不允许嵌套定义

链式访问

把一个函数的返回值当作另一个函数的参数。多个函数调用像 “链条” 一样串联起来,无需借助临时变量存储中间结果。

---------------------------------------------------------------------------------------------------------------------------------

函数声明:
  1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是声明决定不了。
  2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。
  3. 函数的声明一般要放在头文件中的。

函数定义:

函数的定义是指函数的具体实现,交待函数的功能实现。

---------------------------------------------------------------------------------------------------------------------------------

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 15:41:28

langchain agent结构化输出

一.背景LangChain Agent 作为大模型驱动的自主决策智能体,核心价值在于通过工具调用与逻辑推理完成复杂任务,但原生 Agent 的输出多为非结构化自然语言文本 —— 这种 “自由文本” 形式在企业级应用中,难以满足数据存储、系统集成、自动化流…

作者头像 李华
网站建设 2026/5/17 3:35:14

44、高级Shell脚本编程与Linux DVD使用指南

高级Shell脚本编程与Linux DVD使用指南 1. 高级Shell脚本编程基础 在Shell脚本编程中,有两个强大的工具—— sed 和 awk ,它们能极大提升脚本的功能。 sed 是流编辑器, awk 是一种快速编程语言,二者常配合使用。下面通过具体示例展示它们的用法。 2. 尝试使用se…

作者头像 李华
网站建设 2026/5/12 1:03:42

springboot+jspm基于ssm宠物店信息管理系统_yyx1zwj8

目录已开发项目效果实现截图开发技术介绍系统开发工具:核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式&…

作者头像 李华
网站建设 2026/5/16 7:44:46

飞算JavaAI重磅革新!重塑企业级Java开发,效率与品质双飞跃

Java长期以来都是企业级应用开发的核心基石,其开发效率与项目品质直接关乎企业数字化转型的成败。然而,传统Java开发模式始终被开发周期冗长、人力成本高企、代码质量参差不齐等痛点所困扰。在此行业困境下,国家高新技术企业飞算科技自主研发…

作者头像 李华