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

如题所述

一,函数调用的一般形式为:
  函数名(实参列表);
  实参可以是常数、变量、表达式等,多个实参用逗号,分隔。
  在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文件,头文件可以不管
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-26

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

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));
}

第2个回答  2011-11-09
二楼正解,递归调用 int fun()
{
fun();
}
第3个回答  2011-11-09
直接调用 跟调用其他函数没区别追问

举个例子吧

追答

void a()
{
a();
}

就像这样
别试这个, 会死机

追问

这样能行吗

追答

从函数的调用原理来说
调用自己跟调用别的函数是没有区别的

加一句, 调用的那个”自己“ 还会 继续调用 “自己” 所以你得指定 什么 时候 不再 调用 自己 , 这样就能让函数 自己退出 , 不然 内存 会 刷完, linux上 内核会把进程 强杀了 , windows上会死机

本回答被提问者采纳
第4个回答  2015-05-17
用递归调用方式

c语言中怎么调用自己定义的函数?
在使用一个函数之前必须先对他进行声明:\/\/void B();声明B函数的存在。void A(){B();\/\/非法,程序执行到此时并不知道B函数的存在。}void B(){} 或者 include <stdio.h> include <stdlib.h> include <math.h> int fa(int n){ int a;for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);i...

c语言中主函数能调用自己吗?
主函数不能调用自己。主函数实际上是有参函数,从操作系统传入变量,结束时有数值返回操作系统。int main(int argc, char *argv[]){ return 0;} 其中:int argc, char *argv[] 从操作系统传入 return 0; 返回操作系统 如果你的数据不需要同操作系统发生关系,你可以写成自定义函数,主函数里...

c语言中怎么调用自定义函数
可以的,前提是,在使用一个函数之前必须先对他进行声明:\/\/void B();声明B函数的存在。void A(){B();\/\/非法,程序执行到此时并不知道B函数的存在。}void B(){} 或者 include <stdio.h> include <stdlib.h> include <math.h> int fa(int n){ int a;for(a=2;a<=sqrt(n*1.0),n...

C语言中怎么自己定义并调用函数?
int sum(int a, int b);int main(int argc, char* argv[]){ int x = 5, y = 7;int s = sum(x, y); \/\/调用函数 printf("x + y = %d \\n", s);system("pause");return 0;} \/\/定义求和函数 int sum(int a, int b){ return a + b;} 更多C语言教程 ...

c语言 自定义函数如何调用自定义函数
int max(int a,int b){int m; m=a<b?a:b; for(;a%m!=0||b%m!=0;m--); return(m);} int min(int c,int d){ int s; s=c*d\/max(c,d); return s;} int main(){ int max(int a,int b);int min(int c,int d);int x,y,i,j;scanf("%d%d",&x,&y...

c语言中函数可以调用函数吗?
}int main(){ fun2(2,3);\/\/调用fun2.}在这个例子中,就是主函数调用自定义函数fun2,然后fun2调用另一个自定义函数fun1.2、不仅可以调用其它自定义函数,还可以调用自己本身。 这种称为递归。以下是通过递归,计算1+2+3+...+n值的代码:include <stdio.h>int fun(int n){ if(n ...

c语言中怎么调用自定义函数
A.h文件 ifndef A.H define A.H 自定义函数 endif .cpp文件 include "A.H"主函数 main

c语言中,一个函数可以调用其他函数,不能调用自己
错,函数可以调用自己,函数自己调用自己的这种调用方式称为函数的递归调用,我给你举个列子:int calc(int num){ if(num==0){ return 0;}else{ return num*calc(num-1);} } 这个函数就是利用递归求任意一个整数的阶乘

如何定义和调用c语言的函数
接下来,我们讨论如何调用C语言中的函数。函数调用是通过使用函数名并传递必要的参数来完成的。在上面的例子中,我们可以通过以下方式调用`add`函数:c int sum = add; \/\/ 调用add函数,并将返回值存储在变量sum中 这里,我们传递了两个整数参数`5`和`7`给`add`函数,并将返回的和存储在变量`sum...

c语言中,在一个自定义函数里面只能调用一个自定义函数吗?可以调用多 ...
可以调用多个函数,没有限制,除了main函数不可以调用。还有就是,它自己也可以调用自己。也可以调用一些库函数,比如“max(int,int)”,总之,除了main不可以,其他的都可以。不过在调用之前记得要声明。

相似回答