黑马程序员——C语言笔记之函数
2015-08-11 16:59
232 查看
-------
android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------
优点:
1)高程序的可读性
2)可以高开发的效率
3)提高代码重用性
函数体;
//return
}
按照有参数和返回值可分为四种:
有参无返回值:void test(int x,float y){ }
无参无返回值:void test1(){ }
有参有返回值:int max(int x,int y){ return x>y?x:y; }
无参有返回值:int test2(){ return 10;}
形参:在定义函数的时候,函数名后面小括号中的参数
void test(int x,float y){ }
实参:调用函数的时候传递的参数
max(56,78); //56、78就是两个实际参数
2)参数的传递过程实质是,将实参的值拷贝一份放到函数形参中
A、B两个函数 ,如果在A中调用了B,A为主调函数,B为被调函数。
被调函数:
被调函数返回给主调函数的值叫做函数的返回值
使用return 关键字进行返回
1) return 0; return (0);
2) return a+b; return a>b?a:b;
3) 如果函数的返回值是 void return ;(程序返回了,不再向下执行)
4) 函数中可以有多个return,但是只有一个起作用。
类似于变量的使用,我们要使用函数,就应该先定义函数,编译器不知道我们是否已经定义了某个函数,为了防止编译器编译的时候报错(函数调用),所以要告诉编译器,我已经定义了哪些函数。
原则:
在调用函数之前,进行该函数的声明。
声明的方法:
技巧:复制函数的头部,加上分号,写在调用方法之前
int max(int x,int y); //声明
max(56,78); //调用
构成条件:
1)自己调用自己
2)存在一个条件能够让递归结束
3)能够找到一个规律,让要解决的问题的规模缩小
递归函数的执行有两个阶段:
1)递推阶段:问题规模缩小的过程
2)回归迭代:迭代计算值的过程
递归的优点和缺点:
优点:遇到问题规模能够缩小,而且有规律的问题的时候,代码比较简洁。
缺点:太耗内存
建议:在程序中不能用太多
android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------
1、函数的概念
完成特定功能的代码段,它也是组成我们C语言源程序的基本单位优点:
1)高程序的可读性
2)可以高开发的效率
3)提高代码重用性
2、函数的定义格式:
返回值 函数名(形参列表){函数体;
//return
}
按照有参数和返回值可分为四种:
有参无返回值:void test(int x,float y){ }
无参无返回值:void test1(){ }
有参有返回值:int max(int x,int y){ return x>y?x:y; }
无参有返回值:int test2(){ return 10;}
3、函数的参数
1)形参和实参形参:在定义函数的时候,函数名后面小括号中的参数
void test(int x,float y){ }
实参:调用函数的时候传递的参数
max(56,78); //56、78就是两个实际参数
2)参数的传递过程实质是,将实参的值拷贝一份放到函数形参中
4、函数的返回值
主调函数:A、B两个函数 ,如果在A中调用了B,A为主调函数,B为被调函数。
被调函数:
被调函数返回给主调函数的值叫做函数的返回值
使用return 关键字进行返回
1) return 0; return (0);
2) return a+b; return a>b?a:b;
3) 如果函数的返回值是 void return ;(程序返回了,不再向下执行)
4) 函数中可以有多个return,但是只有一个起作用。
5、函数的调用
1)函数的声明:
为什么要进行声明?类似于变量的使用,我们要使用函数,就应该先定义函数,编译器不知道我们是否已经定义了某个函数,为了防止编译器编译的时候报错(函数调用),所以要告诉编译器,我已经定义了哪些函数。
原则:
在调用函数之前,进行该函数的声明。
声明的方法:
技巧:复制函数的头部,加上分号,写在调用方法之前
int max(int x,int y); //声明
2)函数的调用:
格式:函数名(实参列表);max(56,78); //调用
6、递归函数
一个函数在它的函数体内调用它自身称之为递归函数。构成条件:
1)自己调用自己
2)存在一个条件能够让递归结束
3)能够找到一个规律,让要解决的问题的规模缩小
递归函数的执行有两个阶段:
1)递推阶段:问题规模缩小的过程
2)回归迭代:迭代计算值的过程
递归的优点和缺点:
优点:遇到问题规模能够缩小,而且有规律的问题的时候,代码比较简洁。
缺点:太耗内存
建议:在程序中不能用太多
#include <stdio.h> //用递归法求n得阶乘 // 5! // 5*4! // 第一个:递归退出的条件:1! = 1 // 第二个:n! = (n-1)!*n // 第三个:自己调用自己 int jieCheng(int n){ int ji; //判断n==1,如果n=1,阶乘的结果就是1 if (n==1) { ji = 1; }else{ //如果n != 1,前一个数的阶乘乘以当前的n的值 ji = jieCheng(n-1)*n; } return ji; } //求 x的y次方 int xy(int x,int y){ int ji; //判断y==1 if (y==1) { ji = x; }else{ // 如果y !=1 此时,计算x的y-1次方 乘以 x // x y x y-1 *x // 2^3 2^2 *2 ji = xy(x,y-1)*x; } return ji; } int main(int argc, const char * argv[]) { // int ji = jieCheng(8); int ji = xy(2,7); printf("ji = %d\n",ji); return 0; }
相关文章推荐
- 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函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- PowerShell函数简明教程