C语言中函数怎么自己调用自己

 我来答
五梓敏0Ia
2020-03-14 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:828万
展开全部
一,函数调用的一般形式为:
  函数名(实参列表);
  实参可以是常数、变量、表达式等,多个实参用逗号,分隔。
  在c语言中,函数调用的方式有多种,例如:
  在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。
  【示例】在vc6.0下运行以下代码。
  运行结果:
  8
7
6
7
  可见vc
6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:
  9
10
9
8
  函数的嵌套调用
  函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用,即在被调函数中又调用其它函数。
  【示例】计算sum
=
1!
+
2!
+
3!
+
...
+
(n-1)!
+
n!
  分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。
  #include
  //求阶乘
  long
factorial(int
n){
  int
i;
  long
result=1;
  for(i=1;
i<=n;
i++){
  result
*=
n;
  }
  return
result;
  }
  //
求累加的和
  long
sum(long
n){
  int
i;
  long
result
=
0;
  for(i=1;
i<=n;
i++){
  //嵌套调用
  result
+=
factorial(n);
  }
  return
result;
  }
  int
main(){
  printf("1!+2!+...+9!+10!
=
%ld\n",
sum(10));
  return
0;
  }
  二,有些自定义函数可能会被频繁的调用,所以写在一个c文件里是不太方便的。应该把这些自定义的函数写在一个c文件里,同时在一个头文件.h文件里声明。主函数可以通过引用该头文件然后调用需要的自定义函数。
  1,举例:在头文件(.h)里声明自定义函数
  2,在一个c语言文件里写下自定义函数的实现
  3,在主函数中调用自定义函数
  4,最后编译所有的涉及到的c文件,头文件可以不管
nari_lizw
推荐于2017-09-26 · TA获得超过7390个赞
知道大有可为答主
回答量:2075
采纳率:70%
帮助的人:804万
展开全部

你说的是递归调用,举例:

int fun(int x)
{
 int y;  
 if(x>2)
        y=fun(x-1)*fun(x-2);
else
        y=1;
return y;
}
void main(void)
{
    int n=8;
    printf("%d",fun(n));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
动漫小牛牛
2011-11-09 · TA获得超过435个赞
知道答主
回答量:283
采纳率:72%
帮助的人:41.7万
展开全部
二楼正解,递归调用 int fun()
{
fun();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
crab2313
2011-11-09 · TA获得超过255个赞
知道小有建树答主
回答量:346
采纳率:0%
帮助的人:282万
展开全部
直接调用 跟调用其他函数没区别
更多追问追答
追问
举个例子吧
追答
void a()
{
a();
}

就像这样
别试这个, 会死机
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ebe1e4f3
2015-05-17 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3231万
展开全部
用递归调用方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式