后两者并没有区别。
前者不被推荐,因为它不符合标准C的要求。后者要求C语言程序如果正确执行并返回的话,应当返回一个0通知系统说这个程序运行没问题。
有一些编译器允许void main()这种定义法,有些则不允许。所以为了可移植性,和程序的可靠性,都应当采用int main()的定义法。
我确实见过计算机等级考试中使用void main()的定义法。考试的时候别管它,你自己写程序的时候习惯使用int main()并在末尾return 0就OK了。
老版本的C代码以main()这种形式开始。C90标准允许这种形式,但是C99标准不允许。因此即使你当前的编译器允许,也不要这么写。
void main()
有些编译器允许这种形式,但是还没有任何标准考虑接受它。
int main()
main()函数的返回值类型是int型的,而程序最后的 return 0;
正与之遥相呼应,0就是main()函数的返回值。那么这个0返回到那里呢?返回给操作系统,表示程序正常退出。因为return语句通常写在程序的最后,不管返回什么值,只要到达这一步,说明程序已经运行完毕。而return的作用不仅在于返回一个值,还在于结束函数。
在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)。
void main()是代表主函数不需要返回值
int main(void)返回值是int型数据,函数末尾需要ruturn语句。
()中表示函数中传入的参数,括号为空表示不需要参数
()和(void)都表示没有参数,是一样的
void main()是代表主函数不需要返回值,也没有参数,
int main(void)返回一个int型的值,也不带参数
前面两者是有是否带返回值区别的