匿名用户
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型,就是方便如果程序出现一些系统错误时,便于找到程序错误