#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 函数没有被执行呢?
付费偷看金额在0.1-10元之间
http://www.geeksforgeeks.org/...
它们的差别是细微的,而功能是截然不同的。
混淆它们会造成各种奇怪的后果——无法编译、无法得到期望的结果……
而这一切的根本原因在于,没有明确这三者之间的区别。
前面加了
int
表示声明,这个时候函数没有执行定义了一个叫做
factor
的函数,这个函数接受一个 int 型参数 fac,返回一个 int声明了一个叫做
factor
的函数,这个函数接受一个 int,返回一个 int调用了一个叫做
factor
的函数,传递了 int 型变量 i 给它中文解释参见我在 数组的大小的问题 的答案
简单,因为没有呼叫factor函数。
附录:
教你如何阅读 C 语言的声明
C 语言力图声明和使用一致,结果反倒造成许多困惑
一周热门 更多>