void main()和 int main (void)有什么区别(C和C++中的也算)
5个回答
展开全部
其实没什么区别。
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++就会报错。
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代表执行错误。
规范都是人定的,后面不是也说了嘛。现在的操作系统没人去判断这个,所以返回什么都无所谓了。
展开全部
前者是返回为空,后者输入参数为空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前者是返回值为空,后者是输入参数为空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void main() 相当于
int main(){
;
return 0;}
还有main(void)相当于main()
int main(){
;
return 0;}
还有main(void)相当于main()
更多追问追答
追问
必须有返回值?
追答
必须的,一个函数没返回值,就相当于没出口,那要这个函数干嘛?怎么解决问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学的内容有些不同
更多追问追答
追问
。。。
追答
int 是整型的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询