c语言指数函数

什么是函数?C语言函数的概念

表面上看,函数必须用圆括号括起来,必要时必须传递参数,函数的执行结果也可以赋给其他变量。例如,strcmp()是一个用于比较字符串大小的函数,其用法如下:

# include & ltstdio.h & gt# include & ltstring.h & gtint main(){ char str 1[]= & # 34;http://c . biancheng . net & # 34;;char str 2[]= & # 34;http://www . Baidu . com & # 34;;//比较两个字符串的大小,int result = strcmp(str1,str 2);printf(& # 34;str 1-str 2 = % d \\ n & # 34;,结果);返回0;}

Str1和str2是传递给strcmp()的参数,strcmp()的处理结果赋给变量result。

我们不妨设想一下,在没有strcmp()函数的情况下,如何比较两个字符串的大小。请看下面的代码:

# include & ltstdio.h & gt# include & ltstring.h & gtint main(){ char str 1[]= & # 34;http://c . biancheng . net & # 34;;char str 2[]= & # 34;http://www . Baidu . com & # 34;;int结果,I;//比较两个字符串的大小(I = 0;(result = str 1[I]-str 2[I])= = 0;i++){ if(str 1[I]= = & # 39;[7]'| | str 2[I]= = & # 39;[7]'){ break} } printf(& # 34;str 1-str 2 = % d \\ n & # 34;,结果);返回0;}

比较字符串大小是一个常见的函数,一个程序可能会多次使用它。如果每次都写这样重复的代码,不仅费时费力容易出错,交给别人也很麻烦。所以C语言提供了一个功能,可以让我们把常用的代码封装(打包)成一个固定格式的独立模块,只要知道它的名字就可以重用。这个模块叫做函数。

函数的本质是可重用的代码,事先写好,放入指定的文件中,使用时可以直接检索。让我们演示一下如何封装函数strcmp()。

# include & ltstdio.h & gt//将比较字符串大小的代码封装到一个函数中,命名为strcmp _ alias int strcmp _ alias(char * S1,char * S2) {int i,resultfor(I = 0;(结果= S1[I]-S2[I])= = 0;i++){ if(S1[I]= = & # 39;[11]'| | S2[I]= = & # 39;[11]'){ break} }返回结果;} int main(){ char str 1[]= & # 34;http://c . biancheng . net & # 34;;char str 2[]= & # 34;http://www . Baidu . com & # 34;;char str 3[]= & # 34;http://data . biancheng . net & # 34;;//重用strcmp_alias()函数intresult _ 1 _ 2 = strcmp _ alias(str 1,str 2);int result _ 1 _ 3 = strcmp _ alias(str 1,str 3);printf(& # 34;str 1-str 2 = % d \\ n & # 34;,result _ 1 _ 2);printf(& # 34;str 1-str 3 = % d \\ n & # 34;,结果_ 1 _ 3);返回0;}

为了避免与原来的strcmp发生命名冲突,我将新函数命名为strcmp_alias。

这是我们自己写的,放在当前源文件中的函数(函数封装和函数使用在同一个源文件中),所以不需要引入头文件;而C语言自带的strcmp()是放在其他源文件中的(函数封装和函数用法不在同一个源文件中),而且它告诉我们如何在string.h头文件中使用,所以必须介绍string.h头文件。

自己写的strcmp_alias()和原来的strcmp()在功能和格式上都是一样的,只是存储位置不同,所以一个需要引入头文件,一个不需要。

在这一章中,我们主要讨论如何将一段代码封装到一个函数中,以及封装后如何使用它。

C语言中的函数和数学中的函数

美国人称函数为“函数”。除了“功能”的意思,功能也有“作用”的意思。中国人把function翻译成“函数”而不是“函数”,是因为C语言中的函数与数学中的函数有些相似,例如:

C语言中有 length = strlen(str)数学中有 y = f(x)

你看他们多像啊。它们都是通过一定的操作或规则从另一个获取一条数据。

但本质上,把功能理解为“作用”可能更合适。C语言中的函数往往是独立实现某个功能的。一个程序由多个功能组成,可以理解为“一个程序由多个小功能叠加而成”。

本教程重在实践,不在于文字和概念,你可以理解,这里不需要深究。

库函数和自定义函数

c语言在发布的时候就已经为我们封装了很多函数,它们被放到了不同的头文件中(暂时这么认为),所以在使用函数的时候引入相应的头文件就足够了。这些函数都是专家写的,效率高,考虑了各种边界条件。请随意使用它们。

C语言的函数叫做库函数。库是编程中的一个基本概念,可以简单地认为是一系列函数的集合,它往往是磁盘上的一个文件夹。C语言的库称为标准库,其他公司或个人开发的库称为第三方库。

关于库的概念,我们一直在不要这样学C语言,这是一个坑!中对此进行了详细介绍。

除了库函数,我们还可以编写自己的函数来扩展程序的功能。自己写的函数叫自定义函数。用户自定义函数和库函数的编写和使用方式完全一样,只是由不同的机构编写。

参数

函数的一个明显特征是它和括号()一起使用,如果需要,括号中还包含数据或变量,这些数据或变量称为参数。参数是函数需要处理的数据,例如:

strlen(str1)用来计算字符串的长度,str1就是参数。puts("C语言中文网")用来输出字符串,"C语言中文网"就是参数。返回值

既然函数可以处理数据,就要告诉我们处理结果,所以很多函数都有返回值。所谓返回值就是函数的执行结果。例如:

char str 1[]= & # 34;c语言& # 34;;int len = strlen(str 1);strlen()的处理结果是字符串str1的长度,是一个整数,我们通过len变量接收。

函数的返回值有固定的数据类型(int,char,float等。),而且用来接收返回值的变量类型要一致。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论