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 语言力图声明和使用一致,结果反倒造成许多困惑

一周热门 更多>