黑马程序员--C基础--函数总结

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1、函数概念

(1)一般来说,C语言源程序是由函数组成的。C源程序往往由一个主函数main和若干个别的函数组成,函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能。
(2)用户可以把自己的算法编程一个个相对独立的函数模块,然后用调用的方法来使用函数。可以说C程序的全部工作都是由各种各样的函数完成的,所以也把C语言称为函数式语言。

2、函数的分类

(1)从函数定义分,函数分为库函数和用户定义函数。
(2)语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又把函数分为有返回值函数和无返回值函数。
(3)从主调函数和被调函数之间数据传送角度看,分为无参函数和有参函数。
函数的定义和使用分为三个步骤:声明函数-定义函数-调用函数
函数的基本格式如下:

        返回值类型 函数名称(函数参数){

                   函数体;

        }
通常在我们实际使用中,往往把函数分为:无參无返回值函数,无參有返回值函数,有參无返回值函数,有參有返回值函数四种。
1--无参无返回值函数
一般形式如下:
        void 函数名(){
             声明部分
             语句 
        }
无參无返回值指的是返回值是void类型,此处的void就是无返回值类型。并且函数参数部分为空,这类函数就是无參无返回值函数。
  例:
      void line(){
        
           printf(“--------”);

      }

2--无参有返回值函数

     一般形式如下:

           返回值类型 函数名(){
                      声明部分
                      语句
                      return 返回值类型的变量或常量  //返回给主调函数
           }
  此类函数有一个固定的return函数语句,用来返回给主调函数。

例:

#include <stdio.h>
int sum();      //函数的声明
int main(){     //主函数
   int Sum=sum();  //调用函数
   printf("%d",Sum);
   return 0;
}
int sum(){
    int num1=3;
    int num2=5;
    return num1+num2;//返回值
}

 

3--有参无返回值函数

   一般形式如下:

          void 函数名(形参参数列表){
               声明部分
               语句
          }
其中形参列表的格式是:类型 变量名1,类型 变量名2...... 
例:
         void line(int a,float b){
                   printf(“%f”,a+b);
         }
4--有参有返回值函数

   一般形式如下:

           返回值类型 函数名(形参参数列表){
                      声明部分
                      语句
                      return 返回值类型的变量或常量;
           }
例:
#include <stdio.h>
int sum(int a,int b);      //函数的声明
int main(){                
   int Sum=sum(3,5);       //调用函数
   printf("%d",Sum);
   return 0;
}
int sum(int a,int b){
    return a+b;            //返回值
}
 
注意: 
1--有参函数中,实参和形参的类型要保持一致。
2--有返回值的函数,返回值类型和函数类型保持一致。

3、函数的参数

函数的参数包括实参和形参。
实参是主调函数调用函数时给函数参数赋的值,也称为实际参数。
形参是指被调函数中的参数。
如:
int sum(int a,int b){    //此处的a和b就是形参
    return a+b;          //sum()函数是被调函数
}
int main(){              //main函数是主调函数
    int Sum=sum(3,5);    //此处的3和5是实参
    return 0;
}
注意:
1--形参定义后,并不会立即分配存储空间,只有在函数被调用的时候才会真正的分配存储空间。
2--如果有多个形参,应该用逗号隔开。
3--多个形参的类型可以不同。
4--实参可以是变量,也可以是常量。

4、函数的声明

所谓函数的 声明,就是告诉主调函数被调函数实际存在,如果主调函数不知道被调函数是否存在,那么程序将编译出错。所以,函数的声明应该在主调函数之前声明。
函数声明格式:
         返回值类型 被调函数名称(类型 参数1,类型 参数2......);
    或
              返回值类型 被调函数名称(类型,类型......);     
当被调函数的定义在主调函数之前,此时,就不用对被调函数进行函数声明。主调函数可以直接调用被调函数。

5、函数的调用

一般格式为:
                   函数名(实参列表);
当调用无參函数时,实参列表为空。实参可以是常量、变量或其它构造类型及表达式。
如: int Sum=sum(3,5);
这样一个语句就是在本函数中调用sum函数,并且有两个参数,分别用3和5赋值,并且返回一个int型的数据赋值给Sum。
注意:变量名不能和函数名重名

6、递归函数

所谓递归函数就是在一个函数的函数体中调用自身。此时的函数既是主调函数,又是被调函数。
例:
int f(int x){
         int y;
 z=f(y);//函数体中调用自身f()函数
         return z;
       }
递归函数应用:求一个数的阶乘
 
 
#include <stdio.h>
int jiecheng(int n){
    int ji;
    if(n==1){
       ji=1;
    }else{
       ji=jiecheng(n-1)*n;调用自身
}
return ji;返回ji
}
int main(){
    int ji=jiecheng(5);//调用jiecheng()函数
    printf("ji=%d\n",ji);
    return 0;
}
 
 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值