c语言void空类型,c语言void main()不是说空类型,无返回值吗。为何程序执行结果一样是输出整形值?...

匿名用户

1级

2014-06-07 回答

void main()这里说的是main函数的返回值为空,main是C语言的主函数,它的返回值是返回给操作系统的

而程序的输出是由main函数中的printf("%d",b)语句输出的,这条语句在屏幕上将变量b的值以整数形式输出

追问:

你意思是说,返回值 并不是指 运行程序后在dos框里的输出结果吗?》

追答:

不是,返回值是返回给调用它的函数的,而main函数是操作系统调用的,所以main函数的返回值是返回给操作系统的,C99标准建议main函数都设计为int型,这样若main函数返回0,操作系统就能知道该程序成功执行了,如果返回非0值,就可以去查找相应的错误代码进行显示,帮助程序员进行调试

对于其他函数来说,他们的返回值返回给调用他们的函数(供主调函数在后续程序中使用),默认也是不显示的,除非在程序中用输出语句将返回值输出出来,dos框中输出的内容都是用输出语句输出的

追问:

返回值是返回给调用它的函数,那么假如我定义某个函数为

void show()

{

printf(“aaaaa”);

}

这个void show()函数的调试执行结果是不是就 不会在dos框中显示?

追答:

会呀,在dos框中会显示aaaaa,因为show()函数中printf()函数就是完成输出功能的函数,它将“”里的内容在屏幕上输出出来,跟show()函数有没有返回值无关

追问:

谢谢,那是不是可以这样理解:,

我们假设一个函数show()的返回值为s,

当函数类型是void的时候,会把s返回给操作系统。

同时函数里有 printf字句的话,无论show()函数类型是不是 void,printf的存在都会使返回值s在 dos调试框里显示出来。

是不是这样理解啊?

还有,使返回值 返回给操作系统,有什么用途呢

追答:

函数类型为void,就是没有返回值的意思

函数的返回值是返回给调用他们的主调函数,假设main()中调用了一个函数max(),如果max()有返回值,那么max()的返回值就是返回给main(),若max()为void类型就不返回值给main(),和它打交道的调用它的main(),而与操作系统无关

而只有主函数main(非常特殊重要的函数)不能被其他函数调用,它是由操作系统调用的,所以它的返回值才返回给系统,若为void类型就不返回给操作系统

main()函数类型为int型的意义在于:比如说程序中有内存访问错误,那么程序将会异常终止,main()函数就会将这个错误的代码返回给系统,系统收到后就会弹出1个对话框告诉你“该内存不可written”,这样你就知道在程序中肯定是哪里发生了内存访问的错误了,所以现在的程序建议main()函数的类型定义为int型,非不用void型,就是方便如果程序出现一些系统错误时,便于找到程序错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值