void main()和 int main (void)有什么区别(C和C++中的也算)

如题所述

其实没什么区别。

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的检查稍微严格了一些。

如果我这么写
void main()
{
return 0;
}
声明的main函数没有返回值,但是代码里面我强制return 0,这个在C语言里面只会触发一个告警,但是在C++里面就是编译错误,检查严格了一下。

int main()
{
return;
}
这么写一样,声明需要返回一个int类型,但是代码里面不返回的话,C语言编译器不会报错但是C++就会报错。追问

返回值只要不是0,就一定执行错误么

追答

C语言是这么规范的而已,返回0代表执行正确,返回非0代表执行错误。

规范都是人定的,后面不是也说了嘛。现在的操作系统没人去判断这个,所以返回什么都无所谓了。

追问

恩,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-10
前者是返回为空,后者输入参数为空
第2个回答  2015-01-10
前者是返回值为空,后者是输入参数为空
第3个回答  2015-01-10
void main() 相当于
int main(){
;
return 0;}
还有main(void)相当于main()追问

必须有返回值?

追答

必须的,一个函数没返回值,就相当于没出口,那要这个函数干嘛?怎么解决问题?

追问

可其他人说void main()返回值为空,可以没有返回值额

追答

可以没有返回值 ,就是void,下面的哥们好细致!就像他说的那样

追问

恩,

第4个回答  2015-01-10
学的内容有些不同追问

。。。

追答

int 是整型的意思

()内是有内容的,只是省略了而已

相似回答