本期介绍C语言函数与递归部分的笔记。在我看来,如果说各种循环与分支是一个系统的骨架的话,那么形式繁多的函数就是C语言的血肉了,正是各式各样的函数决定了C语言的各种功能。那么话不多说,既然函数如此重要,那就快跟我一起了解函数吧(ps:此部分内容较多,将会分成多期来更新吖)
本章主要掌握函数的基本使用和递归
1.函数是什么
2.库函数的定义及使用查找方法
3.自定义函数的定义及使用方法
4.函数参数的类型
-
函数是什么?-----“子程序
在计算机科学中,子程序是一个大型程序中的部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码来说具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和对细节的隐藏。这些代码通常被集成为软件库。C语言函数分为两类:库函数和自定义函数。
-
库函数
为什么会存在库函数?
我们在编写代码时,总会频繁地使用一些基本的功能,比如打印(printf),字符拷贝(strcpy),n的k次方数学运算(pow)..........当我们需要使用这些功能时,如果临时编写就会很麻烦,为了支持可移植性和提高程序的效率,C语言的基础库中提供了一系列库函数,方便大家进行程序开发。
库函数的种类和数量有很多,在使用时我们不需要也不可能将所有的库函数使用方法及细节全部背下来,只需要像查字典一样用一个查一个就行了
那么C语言的字典是什么呢?下面我会提供几个权威的网站供大家参考,链接如下:
http://cplusplus.com
http://cppreference.com
以上网站都非常实用奥~~~
当然我们在使用库函数之前一定要记住先声明用**#include**所引用的头文件,比如在使用printf函数时需引用
,使用pow函数时需引用头文件 等等,这些在上述网站也是可以查到的 -
自定义函数
库函数虽功能强大,但还是远远无法满足我们编程需求
所以更重要的是 自定义函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数。但不一样的是这些都需要我们自己来设计,这就给了程序员很大的发挥空间,话不多说,我们接下来动手写一个简单的自定义函数:
-
void swap(int x,int y)//返回值类型,函数名,函数参数 { int tmp=0; tmp=x; x=y; y=tmp; }//函数体
这样,我们就完成了一个函数,它的功能是交换两个参数的值,但这个函数在具体使用时仍有问题,不过它可以帮助我们了解自定义函数的几大要素:返回值类型 ,函数名,函数参数和函数主体。
需要注意的是,由于是“自定义”函数,我们在起名时可以像给游戏角色起名一样随意起,但是并不推荐大家这样做,举个栗子
int add(int x,int y)
{
int z=0;
z=x-y;
return z;
}
这样我们就定义了一个看似非常"合理"的函数,说它合理是因为此函数完全符合自定义函数定义规则,但是我们把一个执行减法功能的函数命名为“add”,这显然会引起歧义,为了使我们的代码具有可移植性并且提高程序的运行效率,我推荐大家根据函数功能来命名
函数的参数
实际参数(实参)
真实传递给函数的参数叫实参。实参可以是:常量,变量,表达式,函数等等。无论实参是何种类型的常量,在进行函数调用时,它们都必须有确定的值,以便把这些确定的值传递给形参
** 形式参数(形参)**
形式参数是指函数在定义时括号中的变量,因为参数形式只有函数被调用的过程才实例化,所以叫形式参数。形式参数在函数调用完成后就自动销毁了。因此形式参数只在函数中有效。
只看定义当然很难理解,我们上函数
int get_max(int x,int y)//括号内是形式参数
{
if (x>y)
return 0;
else
return y;
}//以上是对一个自定义函数的定义过程
int main()
{
int a=10;
int b=20;
int max=get_max(a,b);//实际参数,必须有实际的值,可以放变量
printf("max=%d",max)
max=get_max(100,300+1);//也可以放实际的值
max=get_max(100,get_max(3,7));//还可以放另一个函数
printf("max=%d",max);
}
大家如果还是觉得难以理解,那我举个具体的例子:
求一个长方形的面积,我们首先要套用公式“s=a*b”
比如该长方形长是5,宽是4,我们就要将5和4带入到上面的公式里得出面积为5*4=20
在上述过程中,a,b就是形式参数,而具体的值像4,5就是实际参数
在使用时实际参数要把值传递给形式参数,在函数体内进行相应运算后得出结果再传递出来。这就是函数调用的其中一种方式:传值调用。而这里就涉及到了函数的调用,篇幅有限,我们下期再继续介绍相关知识,这里就不赘述了
ok,到此我们本期的内容就结束了,祝大家寒假愉快!
-
C语言
+关注
关注
180文章
7588浏览量
135740 -
函数
+关注
关注
3文章
4273浏览量
62291 -
循环
+关注
关注
0文章
92浏览量
15943
发布评论请先 登录
相关推荐
评论