main()在C和C++中定义函数的正确(最有效)方法是什么- int main()或void main()- 为什么?如果int main()那么return 1或return 0?
这个问题有很多重复,包括:
main()函数的有效签名是什么?main()函数void main()和int main()?main()在C++中的签名main()? - 对于C++,确实有一个非常好的答案.main()C语言中的函数样式main()C中的方法类型int main()vs void main()在C中有关:
我正在编写一个程序来使用main()函数的递归来计算阶乘.
/* Print factorial */
#include <stdio.h>
#include <stdlib.h>
static char **p;
int main(int argc, char **argv)
{
int n, rv;
if (argc < 2) {
printf("Usage: a.out <value>\n");
exit(-1);
}
n = atoi(argv[1]);
if (!n) {
rv = 0;
} else {
if (n == 1) {
rv = 1;
} else {
n = n - 1;
**p = n;
main(2, p);
}
}
printf("%d\n", rv);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该程序编译使用gcc但在执行时,我得到一个分段错误**p = n.有人可以帮我修改上面的程序以获得正确的结果.另外, …