C语言函数的简单说明

来源:互联网 发布:知乎一句话个人介绍 编辑:程序博客网 时间:2024/05/19 11:47
这篇主要讲解一下函数的一些基本概念及其用法。先放一张图,有助于更清楚的阅读。

Paste_Image.png

应用环境

函数是一种能完成特定功能的程序代码的一个单元。它提供给我们一个和黑子的概念,让代码模块化,当你需要实现某一功能的时候,即可调用一个函数来帮你做,这样减少了重复工作,也让代码更加模块化,使得代码的阅读,完善和维护更加简单。

函数的用法

当你想调用一个函数的时候,一般如下格式

函数名(参数)
比如这样printf("打印函数");

函数定义的一般形式如下:

类型标识符 函数名()
{
声明部分
语句
}

这是一个无参数函数的定义。其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。{}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为void,或者不写。


函数的参数分为实参和形参,实参可以是常数、变量、表达式等,多个实参用逗号,
分隔。形参是你声明和定义时所用的参数,实参则是你实际调用时的参数。

函数的嵌套使用

函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用,即在被调函数中又调用其它函数。这样也就实现复杂功能的简单化。例如这样

#include <stdio.h>//求阶乘long factorial(int n){int i;long result=1;for(i=1; i<=n; i++){result *= i;}return result;}/ / 求累加的和long sum(long n){int i;long result = 0;for(i=1; i<=n; i++){//嵌套调用result += factorial(i);}return result;}int main(){printf("1!+2!+...+9!+10! = %ld\n", sum(10));return 0;  }

递归函数

递归函数一般是学习函数过程中的一个难点,它也是函数嵌套使用的一种,不过有些不同于普通的函数嵌套,在调用过程中,执行的语句中有将自身再次调用的语句。在写递归函数的过程中必须有结束条件的语句。
比如下面这个例子

#include <stdio.h>void up_and_down(int);int main(){     up_and_down(1);      return 0;}void up_and_down(int n){printf("leave %d: n location %p\n",n,&n );if(n<4)    up_and_down(n+1);printf("leave %d:n location %p\n",n,&n );}

函数的返回值

函数的返回值就是你所要实现功能的结果表现,它的类型与函数的类型相同,当你定义函数的时候,定义了什么类型的函数,函数的返回值就是什么类型,就像这样,看这几行代码


Paste_Image.png

自定义函数

虽然c语言的函数库很丰富,但是总有的时候不能找到合适的函数,这个时候我们就可以自己动手来,编写一个函数。自定义一个函数主要有一下几个步骤
1.声明函数
2.定义函数
3.编写语句
例如下面这个例子

  #include <stdio.h>  int xiao(int n,int m);             int main()   {int evil1,evil2;printf("Enter a pair of integers(q to quit):\n");while(scanf("%d %d",&evil1,&evil2) == 2){    printf("The lesser fo %d and %d is %d.\n",evil1,evil2,xiao(evil1,evil2));    printf("Enter a pair of integers(q to quit):\n");}printf("Bey\n");return 0;  }  int xiao(int n,int m)  {  return (n<m)?n:m;}函数声明给出了函数名、返回值类型、参数列表(参数类型)等与该函数有关的信息,称为函数原型(Function Prototype)。函数原型的作用是告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的形式,即使函数暂时没有定义,也不会出错。函数的声明一般在mina函数前面,语句后有分号。

函数的定义一般在最后或者其他文件里。

原创粉丝点击