C语言中void main和int main有什么区别

C语言中voidmain和intmain有什么区别,是不是在intmain里面不能出现非int类型的的东西阿,为什么有点需要用void有的需要intmain啊如果程序中有... C语言中void main和int main有什么区别,是不是在int main里面不能出现非int类型的的东西阿,为什么有点需要用void 有的需要int main啊
如果程序中有一个自定义函数是void aaa(),那主调函数还可以写成void main么?
展开
 我来答
changyiduU4Q
高粉答主

2019-11-17 · 关注我不会让你失望
知道答主
回答量:264
采纳率:100%
帮助的人:8.1万
展开全部

1、有无返回值

void main没有返回值,int main有返回值。

2、返回值类型

int main返回int类型的数据,void main不返回。

但是在C语言推荐写法中,建议使用int main,因为在有的编译器虽然viod main可以通过编译,但在其他编译器就会报错。为了代码拥有更好的可移植性,一般写int main。


扩展资料

代码示例

#include <stdio.h> int main(void){    printf("Hello, World! \n");        return 0;

}

上述的代码中为int main,返回了一个0,数据类型为int。

数据类型

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)

char:字符型类型数据,属于整型数据的一种。(K&R时期引入)

int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)

float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)

double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)

参考资料来源:百度百科-c语言

专拣米粒
高粉答主

推荐于2019-08-29 · 关注我不会让你失望
知道答主
回答量:154
采纳率:100%
帮助的人:2.1万
展开全部

void main 和 int main 的区别:

1、void main没有返回值,int main有返回值

2、void main 可以用 int main代替。

3、有的编译器main必须要有返回值 int , 那就写成int main 。

扩展资料:

至于什么时候需要哪种写法,没必要较真。可以一律都写成 int main ,然后在方法体中最后加个return 0 ;就行了,这样写基本上所有的编译器都可以通过。

main函数,又称主函数。作为绝大部分C程序唯一的入口(比如windows编程中可以编写一个其他windows程序都可以使用的动态链接库(DLL)模块,由于DLL模块不是独立的程序,因此不需要main函数。再比如,用于专业环境的程序(如机器人中的控制芯片有可能不需要main函数),是要求有返回值的,该返回值返回给操作系统来表明改程序的执行状况。

返回0代表程序正常执行成功,返回非0值代表程序异常结束,因此返回值需要是int整型,于是有了int main()的规范。如果使用void main,既声明主函数没有返回值的话,程序随能编译、运行成功,却不利于操作系统判断其状态,这对于由很多C程序构成的大型项目来说是可能会是致命的。

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿豪呦1
推荐于2019-08-25 · TA获得超过9956个赞
知道答主
回答量:2
采纳率:0%
帮助的人:410
展开全部

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函数_百度百科

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小莫mxs
推荐于2019-11-14 · TA获得超过816个赞
知道答主
回答量:5
采纳率:0%
帮助的人:807
展开全部

void main 和 int main 主要有以下三个方面的区别:

1、void main的返回值为空值(即没有返回值),int main的返回值为整数类型值。

2、void main 可以用 int main代替,但是 int main 不能用 void main代替。

3、有的编译器main必须要有返回值 int , 那就写成int main 。

在使用中可以一律写成 int main,然后在方法体中最后写 return 0; 就行了,这样写基本上所有的编译器都可以通过。

扩展资料:

在C99 标准中,只有以下两种定义方式是正确的:

1、int main(void){}//整数类型主函数(无类型)

2、int main(int argc,char * argv[])//整数类型主函数(整数类型 统计参数个数,字符类型*数组指针至字符[])

int main(int argc,char * argv[]) 详解:

argc是命令行总的参数个数  

argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数  

命令行后面跟的用户输入的参数,比如:  

int  main(int  argc,  char*  argv[])
{
int  i;
for  (i  =  0;  i<argc;  i++)
cout<<argv[i]<<endl;
cin>>i;
return  0;
}
执行时敲入
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE  aaaa  bbb  ccc  ddd
输出如下:
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE
aaaa
bbb
ccc
ddd  

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weict1988
推荐于2017-09-21 · TA获得超过1792个赞
知道答主
回答量:69
采纳率:0%
帮助的人:82.4万
展开全部
void main 和 int main的区别就是有无返回值啊
在int main 可以出现非 int 类型的东西
我们在写代码时,一个函数要么有返回值,要么没有返回值,没有返回值就用void来表示。 main函数同样的,在没有返回值时加个void 。
有的编译器必须main要有返回值 int , 那就写成int main 。
至于什么时候需要哪种写法,不必有这种顾虑,你可以一律都写成 int main ,然后在方法体中 最后加个return 0 ;就行了,这样写法没有哪个编译器不通过的吧。

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

一句话,以后楼主就写成 int main 就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式