当前位置: 代码迷 >> C语言 >> 函数.....函数.....函数
  详细解决方案

函数.....函数.....函数

热度:426   发布时间:2007-07-18 20:11:36.0
函数.....函数.....函数

main()
{
int n;
printf("input number\n");
scanf("%d",&n);
s(n);
printf("n=%d\n",n);
}
int s(int n)
{
int i;
for(i=n-1;i>=1;i--)
n=n+i;
printf("n+%d\n",n);
}
上面程序的第六行是s(n); ,这个是不是调用的int s(int n)这个函数啊,要是的话,不是先执行main函数吗?而那个函数在下面,执行main的时候还没它呢怎么调用它啊???到了执行它的时候main已经执行完了.这个程序该怎么理解啊????????????????????

搜索更多相关的解决方案: number  

----------------解决方案--------------------------------------------------------
这没什么关系的,函数写在下面可理解为只是对函数的说明,即函数要干什么.在main调用时,会查找函数的说明再做相关的操作,等函数执行完后再反回到main执行后面的语句.(仅限理解,实际上是不是这样我就不太了解了)
----------------解决方案--------------------------------------------------------
不少C教材说,如果函数类型是INT,可以在函数调用前不必作函数声明.但是使用这种方法时,系统无法对参数的类型做\检查.
在TC中,可以这样.TC编译器不是很严格.
但在VC中就不能那样写了.必须得在main中声明..或者把S函数写到main之前

[此贴子已经被作者于2007-7-18 20:48:43编辑过]


----------------解决方案--------------------------------------------------------
楼上你的意思是至于写哪里要看用的什么编译器了

----------------解决方案--------------------------------------------------------
如果调用函数在主函数下实现 则调用前要在主函数里声明
如果调用函数在主函数前实现 则在主函数中不用声明可直接调用
----------------解决方案--------------------------------------------------------
以下是引用aiwoba3000在2007-7-18 20:11:36的发言:

main()
{
int n;int s() /最好加上声明
printf("input number\n");
scanf("%d",&n);
s(n);
printf("n=%d\n",n);
}
int s(int n)
{
int i;
for(i=n-1;i>=1;i--)
n=n+i;
printf("n+%d\n",n);
}
上面程序的第六行是s(n); ,这个是不是调用的int s(int n)这个函数啊,要是的话,不是先执行main函数吗?而那个函数在下面,执行main的时候还没它呢怎么调用它啊???到了执行它的时候main已经执行完了.这个程序该怎么理解啊????????????????????


----------------解决方案--------------------------------------------------------

在主函数中我没声明也正常编译了啊


----------------解决方案--------------------------------------------------------
C程序总是从main函数开始执行的
----------------解决方案--------------------------------------------------------
我不明白

----------------解决方案--------------------------------------------------------

顺序执行吗


----------------解决方案--------------------------------------------------------
  相关解决方案