C语言中main()函数是否返回值?

作者&投稿:偶泳 (若有异议请与网页底部的电邮联系)
在C语言中,主函数是不是必须要有返回值?~

在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则会发出警告。

不一定,看你如何写了:
int main() {} 要求有一个int型的返回值,返回语句return 0;
void main() {} 没有返回值,返回语句return;或不写
其他函数也是这个规则

考虑到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()函数返回值是什么?
答:void main()表示无返回值,就是说在程序尾不需要加return 0;void main(void)与上述是相同的,只是更严密而已。在java/C/C++中,main为程序运行的主入口方法,每个程序只有一个,也就是所有程序建立在卖弄函数的基础之上。

为什么C语言中不可以用void main()函数?
答:在C语言中,void main()和int main()的区别如下:返回值类型:void main()的返回值类型是void,表示不返回任何值;而int main()的返回值类型是int,通常用于表示程序的执行状态,一般约定返回0表示程序正常结束,非0表示程序出现了异常。标准要求:C语言标准规定int main()是C语言程序的标准入口,而...

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

...2分) A. 一个C语言程序可以有多个main()函数 B. main()函?_百 ...
答:C. main()函数是完整C源程序中必不可少的函数 D. C源程序都是从main()函数开始执行 分析:main函数是c语言中必不可少的函数,因为c语言都是从main函数开始执行,所以一个C语言程序中不能有多个main函数,main函数在程序中的位置比较自由,它既可以放在其他函数之前,也可以放在其他函数之后。所以,...

main是什么意思,在C语言中又是什么意思
答:1、main 英[meɪn];意思:主要的;最重要的;2、在C语言里是main()称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。对main()函数始终作为主调函数处理,允许main()调用其它函数并传递参数...

为什么c语言中的main()没有返回值呢?
答:void main()表示函数无返回值,就是说在程序的结尾处不需要加上return 0。而return是在函数体中,用来返回特定值的。一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数称为主函数,主函数是整个程序的入口。基本数据类型:1、void:声明函数无返回值或无参数,声明...

c语言中的main什么意思
答:在C语言中,main是一个特殊的关键字,表示程序的主函数。当程序开始运行时,首先会调用main函数。main函数通常包含以下几个部分:函数声明:定义函数的名称、参数类型和返回值类型。函数体:定义函数的实现,包括变量声明、循环、条件语句等。返回语句:结束函数的执行,并返回一个值(如果有返回值)。以下...

C语言规定:在一个源程序中,main()函数的位置在?
答:可以在自定义函数的后面、可以在自定义函数的前面 B: 的确,系统调用的库函数必须要在main()的前面 准确的来说:A、B都不是很正确,都存在描述性错误、因为:首先,main()的位置不是任意的,必须遵守C语言书写的一些基本规范 例如: int a=1;printf("helle world");main(){ printf("%d"...

c语言中最多能有几个main函数
答:只能有一个main函数。在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main() 函数”,也就是“主函数”。比如有个“做菜”程序,那么“ 做菜 ”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。

在C语言程序中,被调用的函数必须在main( )函数中定义 这句话对吗...
答:不对。C语言中函数可以定义在main()函数外面,如下列代码中定义的swap函数,就是在main()函数外面。示例代码:include<stdio.h> void swap(int *a,int *b){ int t;t = *a;a = *b;b = t;} int main(){ int a=23,b = 43;printf("输入的两个要交换的数为:%d,%d\n",a,b);...