C语言问题,int main()和int main(void)差别是?

如题所述

void main 和 int main的区别就是有无返回值。

在int main 可以出现非 int 类型的东西。在写代码时,一个函数要么有返回值,要么没有返回值没有返回值就用void来表示。 main函数同样的,在没有返回值时加个void 。有的编译器必须main要有返回值 int , 那就写成int main 。

至于什么时候需要哪种写法,不必有这种顾虑,你可以一律都写成 int main ,然后在方法体中 最后加个return 0 ;就行了。

void main 和 int main 在作用上其实没什么区别啊,只是有的严谨的编译器必须要main有int 返回值而已,这两种写法跟自定义的函数没任何关系。

扩展资料:

main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)C/C++中从来没有定义过void main()。

C++之父Bjarne Stroustrup在他的主页上的FAQ中明确地写着The definition void main() {/*...*/} is not and never has been C++, nor has it even been C.(void main() 从来就不存在于C++或者C)。

在C和C++中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 或者是void main()。

然而这是错误的!main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的。虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main。

g++3.2、dev C++等环境中如果main函数的返回值不是int类型,根本无法通过编译。而gcc3.2则会发出警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用int main。

参考资料:main函数_百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
楼主,这两个是一样的
int main(void)指的是此函数的参数为空,不能传入参数,如果你传入参数,就会出错。但必须要有返回值,如在程序的最后一行写上return 0;
int main()表示可以传入参数,程序不需要返回值,就是不要在程序尾部写上return 值。

在c++中int main()和int main(void)是等效的,但在c中让括号空着代表编译器对是否接受参数保持沉默。在c语言中main()省略返回类型也就相当说明返回类型为int型,不过这种用法在c++中逐渐被淘汰。虽然Void main()在很多系统都适用,但他毕竟不是标准的,所以应该避免这种用法,应该使用这种int main(void)的写法比较妥当。本回答被提问者采纳
第2个回答  2011-12-20
main 函数实际上也是有参数的和返回值的,但是一般情况下用不到。不用的时候可以省略或者正式点加个void,用的时候可以和下面一样

#include <stdio.h>
void main(int argc, char** argv)
{
printf("参数个数:%d\n", argc);
printf("第一个参数:%s\n", argv[0]);
printf("第二个参数:%s\n", argv[1]);
}
这个例子运行的时候输入:
文件名 abc
输出:
参数个数:2
第一个参数:文件名
第二个参数:abc

参考资料:http://zhidao.baidu.com/question/319854429.html

第3个回答  2011-12-20
int main(void)是标准写法
用法上没区别
第4个回答  2011-12-20
没有差别。