2009
06-29

放暑假了,开始学习C语言了,一开始就遇到问题了,问问呵呵
书上的例子如下:
计算一个数的正弦值
#include <stdio.h>
#include <math.h>
int main(void)
{
  float x;
  x=sin(0.19199);
  printf(“%f\n”,x);
}
我们都知道,main函数前用int,表明该函数返回值是一个整数,有的操作系统(如UNIX)要求在执行一个程序之后应向系统返回一个整数值,如程序正常执行和结束,应返回0,否则返回一个非0值,因此,需将main函数指定为int,同时在函数体的最后添加返回语句return 0;其功能是向调用者(操作系统)返回0值,表示该函数正常结束.此语句必须写在函数体的最后一行才有意义;但有的系统(如WINDOWS)并无程序必须返回某一整数的要求,因此,可以不指定main函数为整形,可以前面加void,即void main()
所以我想:这里最后会不会差了return 0呢??
继续想,我们都知道,void是”空”的意思,表示执行此函数后不产生一个函数值,但有的函数在执行后会得到一个函数值,如正弦函数sin(x), 那么,在这里,就不能用void main()了,但又产生一个疑问,正弦函数产生的值不是浮点型的吗?那怎么可以用int main()呢??


最后,上机实践,照原文输入,发现运行后什么也没有,得不到结果;在最后加上return 0;得到正常结果;试着把int main()改成void main(),同时去掉最后的return 0;同样可以得到结果.


请高手为我解释解释


新手问题》有 4 条评论

  1. Freeze 说:

    #include <stdio.h>
    #include <math.h>
    int main()
    {
      double x;
      x=sin(0.19199);
      printf(“%f\n”,x);
    }

    后面不加return 0;没有关系至多来个警告

    在main前面是int 还是void

    是针对整个主函数而言的

    与sin(x)无关

    sin(x)在include目录下已经定义过了 返回值是double型的

    不要弄混淆了

    不过 标准的c语言风格应为

    int main()

    {

    return 0;

    }

    void main()是不规范的
    最后 希望你能加入QQ群82774267

  2. han26han 说:

    我用的VC++6.0出来有结果

  3. zhoupeng 说:

    我用的也是vc++ 6.0

  4. tigerblack 说:

    int main(void) 主函数无返回值VC++也会有结果

留下一个回复