int main() 与int main(void) 的区别是啥?

如题所述

没有本质上的区别。
void main() 这么定义只是说明main函数没有返回值。
int main(void)和int main()是一样的,括号里没有东西就相当于void,只是说明main函数有一个int类型的返回值。
C语言的规范里面要求main函数需要返回一个int类型的返回值来告诉操作系统这个程序是执行正确还是执行错误。执行正确返回0,执行错误返回非0。但是目前操作系统都不去判断这个返回值,所以你写成void main()还是int main()其实是一样的,没有什么区别。不过既然有规范,还是推荐写成int main()这种形式。
对于C和C++来说还有一点区别。C++加强了C的一些检查,我们知道C语言是弱类型的语言,编译检查没有那么严格。C++其实也是弱类型的语言(相对于java、c#这些高级语言),但是比C的检查稍微严格了一些。
希望回答对你有帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-01
这主要是函数的参数有void和没void的区别,有void 表示此函数的参数一定为空,如果你传参数的话,就会有编译错误;
而没有void的话就不一样了,他表示此函数的参数可以是任意多个,但对参数不予处理,所以你传参数,也不会有编译错误,只不过不处理罢了。本回答被提问者和网友采纳
第2个回答  2011-08-01
在C++中没有区别,在较新的C语言编译器中也没有区别,

int main(void),这是标准的写法, int main() 就等同于 int main(void);
第3个回答  2021-06-07
在C ++中,没有区别,两者相同。

两种定义都可以在C中使用,但是从技术上讲,使用void的第二种定义在技术上被认为是更好的,因为它明确指出main只能在没有任何参数的情况下调用。

在C语言中,如果函数签名未指定任何参数,则意味着可以使用任何数量的参数或不使用任何参数来调用该函数。例如,尝试编译并运行以下两个C程序(请记住将文件另存为.c)。注意fun()的两个签名之间的区别。
main用哪个都行其实
void和int只是说函数的返回值类型,void就是没有返回值所以不需要return,用int就必须return 0(0是int格式),用char就要返回一个char格式的字符,如果用boolean就得返回true或者false这样的bool值。
所以这个和你程序里面有什么没有关系,和函数返回值的格式有关系,如果你是初学者的话就不用纠结了,等学到函数那边你就懂了
第4个回答  2011-08-01
int main()这个函数被认为可以接受未知个数的参数(译:可接受任意多的参数!)。正确的用法是在括号内添加关键字void
相似回答