C - 主函数不调用子函数? 财富值64

2016-10-30 11:41发布

#include "stdafx.h" #include <stdio.h> #define num 600851475143   int factor(int fac); void main() {     int i;     for (i = 1; i <= num&&num%i==0; i++)     {         int factor(i);                                                              }  }  int factor(int fac)            // to judge if i is a fator {     printf("%d", fac);     return(0); } 

最后什么都不输出,为什么 int factor 函数没有被执行呢?

自定义标题
段落格式
字体
字号
代码语言
10条回答

它们的差别是细微的,而功能是截然不同的。
混淆它们会造成各种奇怪的后果——无法编译、无法得到期望的结果……
而这一切的根本原因在于,没有明确这三者之间的区别。

前面加了int 表示声明,这个时候函数没有执行

定义了一个叫做 factor 的函数,这个函数接受一个 int 型参数 fac,返回一个 int

声明了一个叫做 factor 的函数,这个函数接受一个 int,返回一个 int

调用了一个叫做 factor 的函数,传递了 int 型变量 i 给它

中文解释参见我在 数组的大小的问题 的答案

简单,因为没有呼叫factor函数。

附录:
教你如何阅读 C 语言的声明

C 语言力图声明和使用一致,结果反倒造成许多困惑

一周热门 更多>