c语言main函数的特点 简述c语言中main函数的作用

初学编程,C语言中的main函数考虑到main函数的特殊性c语言main函数的特点,lz不明白这个问题可以理解 。
main()是省略c语言main函数的特点了返回值类型,C语言会默认认为成main的类型为int,在main()的函数体内要返回一个值 , 如return 0;
而void main()的返回值是void类型,也就是说没有返回值 。这样在main()的函数体内你就不用写return 0c语言main函数的特点;或者return 1;之类的返回语句 。
在一个程序中,可以说你看不出两者的差别,因为main()是C语言的入口点,入口点如果返回了程序也就结束了,因此C语言的这个特性似乎没用 。可没用的话,C语言的设计者为什么要这么做呢?c语言main函数的特点!肯定有用 。
没错,前面我说的是在一个程序中,它似乎没用 。可如果一个程序prog2调用另一个程序prog1的话(这里指的是prog2直接调用prog1编译好的可执行文件) , 那么这个特性就有用了 。因为prog2要知道prog1运行之后的状态 。比如你用C写了一个删除文件的程序(暂且命名为delf) , 然后用另一个程序去调用delf,那么调用结果怎么样?。空飧鑫募欠裆镜袅耍空馐莍nt main()就会派上用场了 。C语言中默认的main如果返回为0,那么这个程序调用就成功了,其他值,则为不同的错误代码 。在你的delf程序中,如果那个文件删除成功,那么就在int main()中返回0,其他调用delf的程序就知道,噢,这个操作成功了 。
在unix/linux系统中的很多命令都是通过这种方式获得运行结果的 。
关于谭浩强的书,我想不用多说,发行量说明了一切 。毕竟第二版在编写的时候还比较早,而第三版根据很多现在的需要进行了改写,内容当然会好些 。鉴于lz是初学C,其实大可不必在这个问题上浪费太多时间,当你有了更多的项目经验,对这个问题会有更深刻的理解 。
上面我已经给出了main()、int main()和void main()的区别,但建议lz忽略这个差别,认为成二者一样 , 先把C的其他部分学好 。至于只写成main(),我并不推荐,就算编译器通过了 , 这种编程的风格也太不严谨,不利于好的习惯的养成 。
int main和void main的区别是什么?标准的main函数有两种:
int main(void) //不需要参数 。
int main(int argc, char *argv[]) //需要参数,argc为给程序的参数的个数 , argv中保存的是给函数的参数,都是字符串 。
都需要返回值,这样用户可以知道程序是否正确执行 。
其他类型的main函数都是非标准的 。像linux下都是用标准的main函数 , 而windows下很多编译器都是用void main() 或者main() 。其实这种非标准的main函数很不好 , 用这种main函数学习C语言的人无法知道系统是如何给程序传参数的 。
main函数,又称主函数,是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式 。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体 。
main函数
程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序 。在执行程序时,由系统调用main函数 。main 函数是在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的 。
它是程序在有宿主 (hosted)环境(亦即有操作系统)中所指定的入口点 。自立程序(启动加载器,操作系统内核,等等)的入口点则是由实现定义的 。
主函数的两个形参形式中的形参,允许从执行环境中传递任意的多字节字符串(它们通常被称为命令行参数),各个指针 argv[1] .. argv[argc-1] 指向每个这些字符串的第一个字符 。

推荐阅读