C语言中,main函数需要返回值吗?

作者&投稿:隗厚 (若有异议请与网页底部的电邮联系)
C语言中main()函数是否返回值?~

考虑到main函数的特殊性,lz不明白这个问题可以理解。
main()是省略了返回值类型,C语言会默认认为成main的类型为int,在main()的函数体内要返回一个值,如return 0;
而void main()的返回值是void类型,也就是说没有返回值。这样在main()的函数体内你就不用写return 0;或者return 1;之类的返回语句。
在一个程序中,可以说你看不出两者的差别,因为main()是C语言的入口点,入口点如果返回了程序也就结束了,因此C语言的这个特性似乎没用。可没用的话,C语言的设计者为什么要这么做呢?!肯定有用。
没错,前面我说的是在一个程序中,它似乎没用。可如果一个程序prog2调用另一个程序prog1的话(这里指的是prog2直接调用prog1编译好的可执行文件),那么这个特性就有用了。因为prog2要知道prog1运行之后的状态。比如你用C写了一个删除文件的程序(暂且命名为delf),然后用另一个程序去调用delf,那么调用结果怎么样啊?这个文件是否删掉了?这是int main()就会派上用场了。C语言中默认的main如果返回为0,那么这个程序调用就成功了,其他值,则为不同的错误代码。在你的delf程序中,如果那个文件删除成功,那么就在int main()中返回0,其他调用delf的程序就知道,噢,这个操作成功了。
在unix/linux系统中的很多命令都是通过这种方式获得运行结果的。

关于谭浩强的书,我想不用多说,发行量说明了一切。毕竟第二版在编写的时候还比较早,而第三版根据很多现在的需要进行了改写,内容当然会好些。鉴于lz是初学C,其实大可不必在这个问题上浪费太多时间,当你有了更多的项目经验,对这个问题会有更深刻的理解。
上面我已经给出了main()、int main()和void main()的区别,但建议lz忽略这个差别,认为成二者一样,先把C的其他部分学好。至于只写成main(),我并不推荐,就算编译器通过了,这种编程的风格也太不严谨,不利于好的习惯的养成。

在C语言中,主函数必须要有返回值。
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。
在C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)。

扩展资料:
在C和C++中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 或void main()。然而这是错误的。
main函数的返回值应该定义为int类型,虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main。g++3.2、dev C等环境中如果main函数的返回值不是int类型,根本无法通过编译。而gcc3.2则会发出警告。

函数返回值的意思是将函数实现的结果返回给调用者。

按标准来说,C的main函数是需要有返回值的。标准中main函数返回类型是int的,所以需要一个返回值。但是由于历史原因,很多地方可以看到没有返回值的main。

比如直接main()或者说void main() 但是这样一般编译器也不会认为错误,不过建议还是写标准的C的main函数,最好有一个返回值,0表示正常退出。

扩展资料:

需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。(结构体、联合体、枚举型的声明的“}”后要加“ ;”。)

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料来源:百度百科-函数



需要,应该返回一个整数,0表示正常,其他表示失败


C语言中main函数需不需要返回值?
按标准来说,C的main函数是需要有返回值的。标准中main函数返回类型是int的,所以需要一个返回值。但是由于历史原因,很多地方可以看到没有返回值的main。比如直接main()或者说void main() 但是这样一般编译器也不会认为错误,不过建议还是写标准的C的main函数,最好有一个返回值,0表示正常退出。

main函数 在每个c语言程序中都是必须的吗
C语文程序中必须有main()函数。C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的。一、main()函数的形式 在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void ) \/* 无参数形式 *\/ { ...return 0;} int main( int ...

C语言里的主函数是什么
具体形式如下:main(){ }被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。...

Main 是什么意思啊了
Main 是英文中“主要的”或“主要部分”的意思。在计算机编程语言中,Main 指的是程序的主函数,是程序的入口点。也就是说,每个程序都需要一个 Main 函数,通过 Main 函数启动程序并执行程序中的代码。Main 函数是程序的入口,它的作用是接收命令行参数、初始化程序、调用其他函数、执行程序逻辑和返回...

C语言中main函数的位置应该在哪里?
是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。这个题目的确是选b,很多人选c是因为以偏概全了,如果让c正确的话,应该这么说:main函数的位置在系统调用的库函数后的任意位置,这样就是正确的。

c语言中是不是必须要有main函数?
C语言必须要有一个main函数,而且只能有一个main函数,这个函数叫主函数,它是第一个运行的函数。一般来说,主函数应放在最后,其他被调用函数放在主函数前面。这样的话,其他被调用函数可以不予先声明。如果其他被调用函数放在了主函数后面,则在主函数之前一定要事先对被调用函数加以声明。C语言中的...

c语言中main()函数是什么意思?
include <stdio.h> int main(){ int max = 0,*p = NULL;int arr[10] = {0};printf("输入10个整数:\\n");for(p = arr;p < arr + 10;p++)scanf("%d",p);for(p = arr;p <arr + 10;p++){ if(*p < *(p+1))max=*(p+1);\/\/else \/\/此处不需要 \/\/max=*p;} pr...

c语言中main函数能带参数吗?
main函数可以带形参,形参名字随便,比如你可以叫main(int amao, char **agou),这没问题,但形参的数量类型以及顺序是固定的。传给形参的值只能由命令行中得到 即使带形式参数,也不一定有大于1个参数,参照上一条,个数和值都是由命令行决定的 36:A 相当于i = i B 语句非法,指针不能用乘...

C语言main函数的位置
main()函数称之为主函数,是C语言所有程序运行的入口。而且在整个项目的源代码中,有且只有一个main主函数。不过,一般情况下,main函数都被放在源代码的最前面或者最后面,以方便读者更好地理解。因此,虽然C语言中没有明确的规定,但是在实际的开发中,main函数的位置一般是固定的。函数分类 一、从...

c语言main什么意思?
int main()表示函数有返回值,在main函数结束的时候要有return语句;否则就会有warning void表示函数没有参数。程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。在执行程序时,由系统调用main函数。main 函数是在程序启动中完成对...

泾阳县18649981523: C语言main函数一定要有返回值么 -
蓬陆糖维: 不一定,看你如何写了: int main() {} 要求有一个int型的返回值,返回语句return 0; void main() {} 没有返回值,返回语句return;或不写 其他函数也是这个规则

泾阳县18649981523: 在C语言中,主函数是不是必须要有返回值? -
蓬陆糖维: 按标准来说,C的main函数是需要有返回值的.标准中main函数返回类型是int的,所以需要一个返回值 但是由于历史原因,很多地方可以看到没有返回值的main.比如直接main()或者说void main() 但是这样一般编译器也不会认为错误 不过建议还是写标准的C的main函数.最好有一个返回值.0表示正常退出打字不易 谢谢采纳

泾阳县18649981523: C语言中main函数可以没有return语句吗 -
蓬陆糖维: 可以,但是return语句有助于检错,可以返回控制权给系统,防止被利用这个漏洞

泾阳县18649981523: C语言中主函数是否有返回值,如果有,最多有几个? -
蓬陆糖维: 有且必须要 C99以上标准规定主函数必须返回int 返回值可以有多个值但是只返回其中一个比如FILE *p = fopen(file_path); if (p==NULL)return 1; elsereturn 0; 这样主函数可以返回1或0,但是每次运行文件打开失败与否只返回其中一个

泾阳县18649981523: C语言 main函数的返回值 -
蓬陆糖维: 那在main函数执行完之后 后面的函数是不是可以使用这个值? ->不可以,main函数的返回值是给操作系统用的. 如果main函数没有返回值,你可以脑补它返回了一个零,就像这样,reutrn 0;

泾阳县18649981523: C语言函数的返回值有什么用啊? -
蓬陆糖维: 函数返回值的意思是将函数实现的结果返回给调用者. 按标准来说,C的main函数是需要有返回值的.标准中main函数返回类型是int的,所以需要一个返回值.但是由于历史原因,很多地方可以看到没有返回值的main. 比如直接main()或者...

泾阳县18649981523: C语言中main()函数的作用是?拜托了各位 谢谢 -
蓬陆糖维: void main()函数是C程序处理的起点.main()函数可以返回一个值,也可以不返回值.如果某个函数没有返回值,那么在它的前面加个前缀 void 一个最最简单的例子 #include void main() { printf("测试\n"); } 就会直接输入 "测试" 二字

泾阳县18649981523: C++,如图main前面是int,为什么不用写return也能执行? -
蓬陆糖维: 在 C89(C语言的早期标准)中,main() 是可以接受void返回值的.Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language(《C 程序设计语言》)用的就是void main( ).不过在最新的 C99 标准中,只有以下两种定义方...

泾阳县18649981523: C语言中,是不是 return 0在什么情况都可以写入到最后 -
蓬陆糖维: 不是的,C语言标准格式是在定义主函数的时候定义其类型, 就比如void main()就表示不需要返回值,所以不用return,如果定义的是 int main() 则需要返回值,有这个的好处是当程序执行完后能检测程序的正确性和可行性, 定义这个0的时候是当函数正常执行时就能返回一个0的数给主函数,当不能正常执行时会返回一个非0的数 这个在谭浩强第四版第六页的最下面注释里有详细介绍,

泾阳县18649981523: c语言返回值具体是指什么? -
蓬陆糖维: 子函数的返回值,main主函数也是有返回值的,但是一般用不到都忽略掉了,一般来说的返回值就是子函数的返回值.当需要一个函数去处理数据时,如求平方,这时候求平方后的值可以有两种方法表达 1、以值的形式返回给你,即return x,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网