A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luronghua 中级黑马   /  2016-7-13 08:20  /  761 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

六、函数的返回值


函数的值(或称函数返回值)是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。

使用注意事项

1) 函数的值只能通过return语句返回主调函数。

2) 函数返回值的类型和return实际返回的值类型应保持一致。如果两者不一致,则以return 实际类型为准,自动进行类型转,最后转换成返回值类型返回.

3) 如函数值为整型,在函数定义时可以省去类型说明。 也就是说如果没有指定返回类型, 那么C语言默认是int的类型(开发中不要省略返回值类型)

4) 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。 为了使程序 有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为空类型。

七、函数的嵌套使用

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。

[objc] view plain copy


  • int sum(int x,int y){  
  •     int z = x + y;  
  •     return z;  
  • }  
  •   
  • int main(int argc, const charchar * argv[]) {  
  •   
  •       
  •     int s1 = sum(sum(3, 4), 5);  
  •     printf("%d\n",s1);  
  •     return 0;  
  • }  

八、递归函数


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

递归函数构成条件:

1)自己调用自己 2)存在一个条件能够让递归结束3)问题的规模能够缩小


递归函数的执行有两个阶段:

1)递推阶段:问题规模缩小的过程 2)回归迭代:迭代计算值得过程

递归的优点和缺点:

优点是:遇到问题规模能够缩小,而且有规律的问题的时候,代码比较简洁

缺点:消耗内存,建议在程序中不能用太多

递归举例:求N的阶乘


[objc] view plain copy


  • #include <stdio.h>  
  • int jiecheng(int n ){  
  •     int jie;  
  •     //判断是否等于1  
  •     if(n==1){  
  •         jie = 1;  
  •     }else{  
  •         jie = jiecheng(n-1)*n;  
  •     }  
  •     return jie;  
  • }  
  • int main(int argc, const charchar * argv[]) {  
  • //    用递归求N的阶乘  
  • //    5!=4!*5  
  • //    4!=3!*4  
  • //    ...  
  • //    n!=(n-1)!*n  
  •     int s = jiecheng(5);  
  • //    打印结果  
  •     printf("%d\n",s);  
  •     return 0;  
  • }  



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马