C语言函数的简单说明

这篇主要讲解一下函数的一些基本概念及其用法。先放一张图,有助于更清楚的阅读。

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函数前面,语句后有分号。

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值