0unique0 发表于 2022-10-18 17:00:39

不理解

本帖最后由 0unique0 于 2022-10-18 17:09 编辑

       #include<stdio.h>
       int main()
       {
      char arr1 [] = "abc";
      char arr2 [] = 'a','b','c',0;
      printf("%s\n", arr1);
      printf("%s\n",arr2);
       }






   以上这个编码为什么没有return 0;就可以编码
   DEV c++上面显示没有错误

0unique0 发表于 2022-10-18 17:14:14

而且加了    return 0;
之后还是显示没有错误

jackz007 发表于 2022-10-18 18:52:25

      main() 是供操作系统调用的特殊函数,可以没有返回值。

临时号 发表于 2022-10-18 22:58:35

如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中加入return 0;
你这个代码在VC6中会报错,因为VC6不支持C99标准

高山 发表于 2022-10-19 09:13:32

在C99编译器是会在代码后面自动加return 0 的
但VC6就不支持,某些判题系统或比赛也不支持
学编程要严谨,这种东西还是少做
如果满意,请点击右下角最佳答案鼓励作者
还有,发代码请点击编辑器右上角<>这个符号发布,也要缩进,你代码格式有点乱
就像这样:#include<stdio.h>
int main()
{
        char arr1 [] = "abc";
        char arr2 [] = 'a','b','c',0;
        printf("%s\n", arr1);
        printf("%s\n",arr2);
}

0unique0 发表于 2022-10-19 12:20:18

高山 发表于 2022-10-19 09:13
在C99编译器是会在代码后面自动加return 0 的
但VC6就不支持,某些判题系统或比赛也不支持
学编程要严谨 ...

懂了
页: [1]
查看完整版本: 不理解