函数函数,令吾又寒又暑

本文详细介绍了C语言中的函数概念,包括库函数(标准库与头文件)、自定义函数的编写以及函数使用的关键点如实参与形参、return语句、数组参数处理、嵌套调用和链式访问。
摘要由CSDN通过智能技术生成

目录

前言

一、函数概念

二、函数分类

库函数

(1)标准库

(2)头文件

(3)示例

自定义函数

三、函数使用

1、实参与形参

2、return语句

3、数组做函数参数

数组传参的⼏个重点知识

4、嵌套调⽤和链式访问

(1)嵌套调用

(2)链式访问


前言

本章我们来学习一下C语言中的函数,我们将从函数概念、函数类型、函数使用三个大部分来诠释

其中函数使用部分包含(形参和实参  return语句  数组做函数参数  嵌套调⽤和链式访问 )几个要素,话不多说,下面就让我们一起来学习

一、函数概念

C语⾔中的函数就是指完成某项特定的任务的⼀⼩段代码,有些翻译也将其命名为子程序

因为其具有“完成某项特定任务”的属性,所以我们可以将函数当成一个工具来看待,通过在主程序中调用函数来达到解决问题的目的,并且函数可以重复使用,这大大提高了我们的开发效率

二、函数分类

库函数

(1)标准库

C语⾔标准中规定了C语⾔的各种语法规则,C语⾔并不提供库函数

C语⾔的国际标准ANSIC规定了⼀些常⽤的函数的标准,被称为标准库,那不同的编译器⼚商根据ANSI提供的C语⾔标准就给出了⼀系列
函数的实现

这些函数就被称为库函数

简而言之C语言中规定了函数使用标准,在这个标准下使用的函数被称为库函数

(2)头文件

库函数是在标准库中对应的头⽂件中声明的,所以库函数的使⽤,务必包含对应的头⽂件,不包含是可能会出现⼀些问题的

(3)示例

举例:sqrt

 double sqrt (double x);
 //sqrt 
是函数名
 
//x 
是函数的参数,表⽰调⽤
sqrt
函数需要传递⼀个
double
类型的值
 
//double 
是返回值类型
 - 
表⽰函数计算的结果是
double
类型的值

自定义函数

下面我们来了解一下自定义函数,自定义函数即除库函数以外的由我们自己创建的函数类型

写⼀个加法函数,完成2个整型变量的加法操作:

 #include <stdio.h>
 int Add(int x, int y)
 {
 int z = 0;
 z = x+y;
 return z;
 }
 int main()
 {
 int a = 0;
 int b = 0;
 //输⼊
 scanf("%d %d", &a, &b);
 //调⽤加法函数,完成
 a和b的相加 
 //求和的结果放在r中
 int r = Add(a, b);
 //输出
 printf("%d\n", r);
 return 0;
 }

函数的参数部分需要交代清楚:参数个数,每个参数的类型是啥,形参的名字叫啥

三、函数使用

1、实参与形参

实参就是我们在函数调用过程中实际给函数传递的参数

形参则是放在函数名后的括号内,用来接收从实参传递过来的值的参数,形参只是在形式上存在,不会向内存申请空间,不是真实存在的,只有在接收值之后才会申请空间

注意:形参和实参各自独立占用内存空间,因此我们可以理解为形参是实参的一份临时拷贝

2、return语句

 在函数的设计中,函数中经常会出现return语句,这⾥讲⼀下return语句使⽤的注意事项

 • return后边可以是⼀个数值,也可以是⼀个表达式,如果是表达式则先执⾏表达式,再返回表达      式 的结果

 • return后边也可以什么都没有,直接写 return; 这种写法适合函数返回类型是void的情况

 • return返回的值和函数返回类型不⼀致,系统会⾃动将返回的值隐式转换为函数的返回类型

 • return语句执行后,函数就彻底返回,后边的代码不再执行

 • 如果函数中存在if等分⽀的语句,则要保证每种情况下都有return返回,否则会出现编译错误

3、数组做函数参数

数组传参的⼏个重点知识

• 函数的形式参数要和函数的实参个数匹配

• 函数的实参是数组,形参也是可以写成数组形式的

• 形参如果是⼀维数组,数组⼤⼩可以省略不写

• 形参如果是⼆维数组,⾏可以省略,但是列不能省略

• 数组传参,形参是不会创建新的数组的

形参操作的数组和实参的数组是同⼀个数组

4、嵌套调⽤和链式访问

(1)嵌套调用

嵌套调⽤就是函数之间的互相调⽤,每个函数就⾏⼀个乐⾼零件,正是因为多个乐⾼的零件互相⽆缝 的配合才能搭建出精美的乐⾼玩具,也正是因为函数之间有效的互相调⽤,最后写出来了相对⼤型的 程序

未来的稍微⼤⼀些代码都是函数之间的嵌套调⽤,但是函数是不能嵌套定义的

(2)链式访问

所谓链式访问就是将⼀个函数的返回值作为另外⼀个函数的参数,像链条⼀样将函数串起来就是函数的链式访问

一个有趣的代码:

 #include <stdio.h>
 int main()
 {
 printf("%d", printf("%d", printf("%d", 43)));
 return 0;
 }

printf函数返回的是打印在屏幕上的字符的个数

上⾯的例⼦中,我们就第⼀个printf打印的是第⼆个printf的返回值,第⼆个printf打印的是第三个 printf的返回值

 第三个printf打印43,在屏幕上打印2个字符,再返回2 第⼆个printf打印2,在屏幕上打印1个字符,再放回1 第⼀个printf打印1

所以屏幕上最终打印:4321


本章到这里就结束啦,希望各位小伙伴可以点个关注,支持一下阿鹿,大家的鼓励是我前进的第一动力,3Q~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值