A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刚刚专门写了个打印hello world试了试,没有return 0,既没有报错,运行也没有问题- - 那return 0意义在哪0 0

4 个回复

倒序浏览
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在目标文件中加入return 0; ,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0;
                                                                                                                                                                                                                             --------百度百科
        main函数的返回值是给系统的
        告诉系统程序结束的状态你试试下面的代码:
#include <stdio.h>
void add()
//int add()
{
    printf ("hello world!\n");
//    return;
    return -1;
//    return 1;
//    return 0;


    printf ("hello world!\n");
}
int main()
{
    add();
//    return 0;
    add();
    return 0;
}



回复 使用道具 举报
return 0 或者return  当然还可以return其他的值。其中的return含义:如果在主函数中,return代表将整个程序结束运行并推出,如果在其他的函数当中,表示结束当前函数的调用,然会调用该函数的调用位置。
回复 使用道具 举报
return(表达式)的含义在自定义函数时是很明显的,如:
“int sum(int i,int j)
{
return i+j;
printf ("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");
}

main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}

程序的输出为:
21

这个21从何而来呢main函数调用sum(a,b)函数时将a的值赋给i,b的值赋给j,上面说了return i+j;会计算i+j的值也就是结果等于21,并将21带回给调用它的函数,即c=sum(a,b);相当于c=21,这个21 就是由sum(a,b)中的return反回来的。
                  -----例子来自度娘
所以我觉得,return的作用就是在调用函数结束返回给函数的一个值。
回复 使用道具 举报
其实简单点理解比较好,你可以这么想,程序从main入口进入,跑起来后可能在任何地方出错,一旦出错就直接崩掉了,但是如果崩掉后没有任何表现你是不是就不知道是否是正常退出。再回过头来想,main 函数结束,表明程序结束,就是程序正常退出,你当然得给一个返回值让系统知道是正常退出,不然系统就蒙逼了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马