当前位置:首页 > 全部子站 > IT > 水平考试

2011年软件水平考试程序员之程序设计知识点23

来源:长理培训发布时间:2017-10-20 13:56:03

  6.5 返回指针的函数

  函数也可以返回指向某种数据对象的指针值。定义(或说明)返回指针值函数的函数头有以下形式:

  类型说明符 * 函数名(形式参数表)

  例如,函数说明:

  int *f(int,int);

  说明函数f()返回指向int型数据的指针,该函数有两个整型形式参数。

  在函数名的两侧分别为* 运算符和()运算符,而()的优先级高于*,函数名先与()结合。函数名()是函数的说明形式。在函数名之前的* ,表示此函数返回指针类型的值。

  【例6.4】 编制在给定的字符串中找特定字符的第一次出现。若找到,返回指向字符串中该字符的指针;否则,返回NULL值。

  设函数为search(),该函数有两个形式参数,指向字符串首字符的指针和待寻找的字符。以下是函数search()的定义:

  char *search(char *s,char c)

  { while(*s && *s! = c)

  s++;

  return *s?s:NULL;

  }

  6.6 函数递归调用

  一个函数为完成它的复杂工作,可以调用其它别的函数。例如,从主函数出发,主函数调用函数A() ,函数A()又调用函数B(),函数B()又调用函数C(),等等。这样从主函数出发,形成一个长长的调用链,就是通常所说的函数嵌套调用。函数嵌套调用时,有一个重要的特征:先被调用的函数后返回。如这里所举例子,待函数C()完成计算返回后,B()函数继续计算(可能还要调用其它函数) ,待计算完成,返回到函数A(),函数A()计算完成后,才返回到主函数。

  当函数调用链上的某两个函数为同一个函数时,称这种函数调用方式为递归调用。通过速归调用方式完成其功能的函数称为递归函数。许多问题的求解方法具有递归特征,用递归函数描述这种求解算法比较简洁。计算n的阶乘(n!)函数就是一个很好的例子。因

  n! = l*2*3* …*n

  按其定义用循环语句可以方便地实现,写成函数见下例6.5。

  【例6.5】用循环实现阶乘计算的函数。

  float fac(int n)

  {float s;

  int i;

  for(s=1.of,i=l;i

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部