放暑假了,开始学习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;同样可以得到结果.
请高手为我解释解释
>> 本文固定链接: http://www.vcgood.com/archives/3232
#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
我用的VC++6.0出来有结果
我用的也是vc++ 6.0
int main(void) 主函数无返回值VC++也会有结果