扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
C语言的发展颇为有趣,它的原型ALGOL 60语言。那么大家知道C语言函数是什么吗?下面一起来看看!
为雁塔等地区用户提供了全套网页设计制作服务,及雁塔网站建设行业解决方案。主营业务为网站设计、网站制作、雁塔网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
函数(Function)是一段可以重复使用的代码,这是从整体上对函数的认识。
C语言本身带了很多库函数,并分门别类地放在了不同的头文件中,使用时只要引入对应的头文件即可。
除了C语言自带的.函数,我们也可以编写自己的函数,称为自定义函数(User-Defined Function)。自定义函数和库函数没有本质的区别,表现形式和使用方法一样,只是开发者不同而已。
这一章我们就来讲解如何编写和使用自己的函数。
参数
函数的一个明显特征就是使用时带括号( ),必要的话,括号中还要包含数据或变量,称为参数(Parameter)。参数是函数需要处理的数据,例如:
strlen(str1)用来计算字符串的长度,str1就是参数。
puts("C语言中文网")用来输出字符串,"C语言中文网"就是参数。
返回值
既然函数可以处理数据,那就有必要将处理结果告诉我们,所以很多函数都有返回值(Return Value)。所谓返回值,就是函数的执行结果。例如:
char str1[] = "C Language";
int len = strlen(str1);
strlen() 的处理结果是字符串 str1 的长度,是一个整数,我们通过 len 变量来接收。
函数返回值有固定的数据类型(int、char、float等),用来接收返回值的变量类型要一致。
编程中的函数的英文名是function,而function有一个意思叫“功能”,所以编程中的函数一词可以理解为”实现某个功能的模块“。
比如学下面这个求最大值的函数
int max(int a,int b)
{
return (ab)?a:b;
}
它就是一个“功能”,或者说是一个“功能模块”,它所实现的功能就是将所给的两个值中更大的那个找出来并返回给调用它的地方。
中文之所以称之为函数,原因可能是数学中的函数往往有输入和输出,比如y=2x,x是输入,给了输入,就会有一个输出y,而编程中的function也符合这一点(当然,输入不是必须的)。而且将function译为功能感觉也怪怪的,要也是叫功能模块更符合一点。
是的。函数指针就是函数的指针,它是一个指针,指向一个函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
例:
A) char * (*fun1)(char * p1,char * p2);
B) char * *fun2(char * p1,char * p2);
表达式相比,唯一不同的就是函数的返回值类型为char**,是个二级指针。
C) char * fun3(char * p1,char * p2);
fun3是函数名,p1,p2是参数,其类型为char *型,函数的返回值为char *类型。
扩展资料
函数指针使用的例子
#include stdio.h
#include string.h
char * fun(char * p1,char * p2)
{
int i = 0;
i = strcmp(p1,p2);
if (0 == i)
{
return p1;
}
else
{
return p2;
}
}
int main()
{
char * (*pf)(char * p1,char * p2);
pf = fun;
(*pf) ("aa","bb");
return 0;
}
int main(void){ }
这时主函数形式,作用是展示程序大致结构,是调用函数,调用其他的函数(c库中,或自己定义的)
第一个int指函数返回值是int值(整数类型),这也是为什么main函数最后用return 0。
main()是函数名
void指函数不需要接受参数
这是c最基础的,如果这都不知道怎么学c,推荐你用c primer plus,讲的很清楚,很有趣。其实c自学没问题,不要一有不懂就来问,自己先想想,书上都有,看仔细,思考思考。
对的,函数名仅代表函数的名称,就和人的名字一样只是一个代号。
但要注意的是:
1、要以字母开头;
2、不能以关键字当函数名;
这两条是硬规定,就像人起名字要符合法律规定。
3、起一个有意义的函数名对维护程序有很大的作用;
这不是硬性规定,但很重要,就像人起名字都代表美好的愿望。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流