【手把手带你入门】函数的基本使用(超全解释,包括库函数的学习方法介绍,一定要码住!)

本文详细介绍了C语言中的函数使用,包括函数的概念、分类(库函数与自定义函数)、参数(实际参数与形式参数)、调用方式(传值与传址)、嵌套调用和链式访问。此外,还讲解了函数的声明与定义、递归的原理与条件,并通过实例对比了递归与迭代的优缺点。最后,文章强调了在适当场景下选择递归或迭代的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数的概念

【手把手带你入门】初识C语言(下)中我们已经对函数有了一个简单的认识。
在这里插入图片描述

函数的分类

C语言中函数分为库函数和自定义函数。

库函数

就像我们每个人都要吃饭、睡觉等等,这是我们作为一个人所必须的基本活动,而在C语言中,我们也会频繁地使用一些特定的功能,比如打印结果、输入数字等等,这些函数每个码农都可能用到,所以C语言就贴心地为我们定义好这些函数,并放在基础库中供我们随取随用。

关于库函数的参考和学习,大家可以进入这个网站进行查看www.cplusplus.com

在C语言中,常用的库函数有以下几类:

IO函数 (输入输出等函数)
字符串操作函数
字符操作函数
内存操作函数
时间/日期函数
数学函数
其他库函数

当我们要学习一个库函数的时候,我们可以在上面给出的网站中进行查询。

例如,我想要查询一下strcpy这个函数。
在这里插入图片描述
在这里插入图片描述

除了以上的网址,我们还可以借助其他的工具。

MSDN(Microsoft Developer Network)
http://en.cppreference.com

自定义函数

我们知道,库函数是用来完成一些比较基础的任务的,它并不能帮我们做完所有的事情,这时候我们可以自定义函数,自己创建一个函数来帮助我们完成任务,这种自己设计函数的方式给了我们一个巨大的空间去发挥和创造。

那么我们应该如何定义一个函数呢?

组成部分

首先我们先来看一下函数都有哪些组成部分呢?
在这里插入图片描述

所以我们可以看到,函数的组成部分为:函数名、函数参数、返回类型和函数实现的语句。如果函数不返回任何值,则返回类型为void。

下面我们举一个例子:

写一个函数可以找出两个数的最大值

在这里插入图片描述
运行结果如下:
在这里插入图片描述
如果你觉得这篇文章对你有用,记得点赞收藏加关注噢!

函数的参数

如果我们要写一个函数用于交换两个整型变量的内容,我们应该怎么写呢?

#include <stdio.h>
void swap1(int x, int y)
{
   
   
	int tmp = x;
	x = y;
	y = tmp;
}

int main()
{
   
   
	int a = 10;
	int b = 20;
	printf("交换前:a=%d b=%d\n", a, b);
	swap1(a, b);
	printf("交换后:a=%d b=%d\n", a, b);
	return 0;
}

运行代码:
在这里插入图片描述
我们发现,a、b的值并没有如我们所愿进行交换。问题出在哪里了呢?

这里就涉及到了一个东西,就是函数的参数。函数的参数分为实际参数和形式参数。

实际参数(实参):

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

形式参数(形参):

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

所以当我们把a和b的值传给swap函数之后,x、y只是在函数内部进行值的交换,函数调用完成后,形式参数x、y就自动销毁了,并没有改变a、b的值,因此我们发现调用函数后,a、b的值并没有被交换。

那么如果我们想要通过函数实现交换a、b的值这一功能呢?

#include <stdio.h>
void swap2(int* x, int* y)
{
   
   
	int tmp = *x;
	*x = *y;
	*y = tmp;
}

int main()
{
   
   
	int a = 10;
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值