回 帖 发 新 帖 刷新版面

主题:C语言问题

其实,我现在有些不理解,比如!!
#include <stdio.h>       
void main()
{int i,j,sum=0,score[4];
double ave=0.0;
for(i=0;i<4;i++)
{for(j=0;j<5;j++)
   scanf("%d",score[j]);
sum=sum+score[j];}
   ave=sum/5.0;
   printf("%f",ave);
}
  这个简单的程序
   我听有人说VOID main 这是个国产错误!!! 是真的? 还是假的? 我们就是学的就是这个!  如果是错的话, 又错在哪里呢??
   十分不理解!!! 本人是菜鸟~~~   
         希望朋友们帮助我一下,谢了。 呵呵~~ 

回复列表 (共3个回复)

沙发

我记得有帖子 写过这个。。还是int main()  乖乖return吧

板凳


The definition void main( ) { /* ... */ } is not and never has been C++, nor has it even been C.           ——Bjarne Stroustrup

参考全文http://blog.pfan.cn/yzfy/24801.html

3 楼

要理解为什么不是void main,需要了解计算机的原理和组成历史,完整的理由可以通过阅读面的扩大来解决。
简单地来理解的话,以前的计算机不像现在这样,那时候你总要告诉计算机一个状态,让计算机知道“工作结束了,准备下一个工作吧”。而怎么告诉计算机这一点呢?那个时代的C只有int这一种数据类型,因此也只好用这种类型来汇报了。由于程序设计语言都是需要尽可能支持以前版本的代码的,因此int main就作为标准被保留了下来。时至今日,void main在一些特定环境中会引起未知后果

我来回复

您尚未登录,请登录后再回复。点此登录或注册