【黑马程序员】C语言函数
2015-11-17 16:28
316 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、函数的概述
功能相对独立的代码段
二、函数的分类
1.从函数的定义的角度看,函数可分为库函数和用户定义函数
2.语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数
3.从主调函数和被掉函数之间数据传输的角度来看又可分为无参函数和有参函数
三、自定义函数的书写格式
函数定义到使用分三步:1.声明 2.定义 3.调用函数
函数的基本格式:
返回值类型 函数名称(函数参数){
函数体;
}
三、函数的参数传递过程
1)形参变量只有在被调用时才分配内存单元 在调用结束时,即刻释放所分配的内存单元。因 此,形参只有在函数内部有效。函数 调用结束返回主调函数后则不能再使用该形参变量。
2)实参可以是常量、变量、表达式、函数等 无论实参是何种类型的量,在进行函数调用时,它 们都必须具有确定的值,以便把这些 值传送给形参。因此应预先用赋值,输入等办法使实参获得 确定值。
3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
四、函数的声明
在主调函数中调用某函数之前应对被调函数进行说声明,这与使用变量之前要先进行声明变量和说明是一样的
五、递归函数的概述及构成条件
1.递归函数该商户及用法
一个函数在它的函数体内调用它自身称为递归调用。
2.递归和函数构成条件
1)存在自己调用自己
2)存在一个条件,能够让递归结束
3)能够找到一个规律,让要解决的问题的规模缩小
3.递归调用注意
1)主调函数就是被调函数
2)在递归函数中应该存在能够让递归结束的条件
四、递归应用
一、函数的概述
功能相对独立的代码段
二、函数的分类
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 语言程序(二)
- 如何写好 C main 函数
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua和C语言的交互详解
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究