【黑马程序员】C语言函数

原创 2015年11月17日 16:28:39


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


一、函数的概述

功能相对独立的代码段



二、函数的分类


1.从函数的定义的角度看,函数可分为库函数和用户定义函数

2.语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数

3.从主调函数和被掉函数之间数据传输的角度来看又可分为无参函数和有参函数


三、自定义函数的书写格式


函数定义到使用分三步:1.声明 2.定义 3.调用函数


函数的基本格式:


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



函数体;


}



三、函数的参数传递过程 

1)形参变量只有在被调用时才分配内存单元 在调用结束时,即刻释放所分配的内存单元。因 此,形参只有在函数内部有效。函数 调用结束返回主调函数后则不能再使用该形参变量。 

2)实参可以是常量、变量、表达式、函数等 无论实参是何种类型的量,在进行函数调用时,它 们都必须具有确定的值,以便把这些 值传送给形参。因此应预先用赋值,输入等办法使实参获得 确定值。 

3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。 


四、函数的声明


在主调函数中调用某函数之前应对被调函数进行说声明,这与使用变量之前要先进行声明变量和说明是一样的



五、递归函数的概述及构成条件


1.递归函数该商户及用法

一个函数在它的函数体内调用它自身称为递归调用。


2.递归和函数构成条件

1)存在自己调用自己

2)存在一个条件,能够让递归结束

3)能够找到一个规律,让要解决的问题的规模缩小

3.递归调用注意


1)主调函数就是被调函数

2)在递归函数中应该存在能够让递归结束的条件




四、递归应用


<span style="font-size:14px;">//
//  main.c
//  用递归法求N的阶乘
//
//  Created by Brisinga on 15/11/15.
//  Copyright © 2015年 yan. All rights reserved.
//

#include <stdio.h>

//定义计算阶乘的函数
int factorial(int n){
    //定义一个变量保存结果
    int result = 0;
    if (n==1) {  //定义阶乘退出条件
        result = 1;
    }else{
        result = n *factorial(n-1);  //递归调用
    }
    return result;   //返回结果
}
int main(int argc, const char * argv[]) {
    int result = factorial(5);
    printf("%d\n",result);
    return 0;
}
</span>

<span style="font-size:14px;">//
//  main.c
//  用递归实现x的y次方
//
//  Created by Brisinga on 15/11/15.
//  Copyright © 2015年 yan. All rights reserved.
//

#include <stdio.h>

//定义递归函数
int xy(int x,int y){
    
    //定义变量保存结果
    int result = 0;
    if (y==0) {
        result = 1; //定义递归控制
    }else{
    
        result = x * xy(x, y-1); //递归调用
    }
    
    return result;  //返回结果

}
int main(int argc, const char * argv[]) {
    
    int result = xy(3, 3);
    printf("%d\n",result);
    return 0;
}</span>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员——C语言基础---函数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------                      第一讲    函数的概念...

黑马程序员---C语言基础---条件、循环语句、函数

黑马程序员---C语言基础---条件、循环语句、函数

黑马程序员 C语言 - 04 函数、进制、内存分析、类型说明符

ruo'pai'ban'cuo'wC语言 - 04 函数、进制、内存分析、类型说明符.pdf

黑马程序员——2、C语言(流程控制和函数)

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

黑马程序员——C语言笔记之函数

------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ---------- 1、函数的概念 完成特定功能的代码段,它也是组成我们C语言源程序的基本单位 ...

黑马程序员——c语言基础:scanf函数

1.scanf函数的介绍及使用 1)scanf函数是一个阻塞式函数:函数执行后,会等待用户输入,如果用户不输入任何内容,它会一直等待。 2)scanf函数的作用:接收用户从键盘输入的内容,并保存到...

黑马程序员IOS基础---C语言学习之函数

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、基本概念 1.什么是函数 任何一个C语言程序都是由一个...

黑马程序员——c语言基础:函数

1.函数的参数 形式参数,简称形参:在函数定义中,函数名后面小括号中的参数。    注意:    1)形参定义后,并不会立即分配存储空间,在函数调用的时候才会分配存储空间。    2)如果有多个形参...

黑马程序员——C语言基础学习(三)---进制和函数的总结学习

进制和函数的总结学习
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)