main(),在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、江苏网络推广、成都小程序开发、江苏网络营销、江苏企业策划、江苏品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供江苏建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
具体形式如下:
main()
{ }
被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。
在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。
扩展资料:
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
参考资料来源:百度百科-C语言函数
// C语言由bell实验室创立,但后续分支太多
// 所以ISO(国际标准化组织)制定了统一标准
// 目前通过的标准主要有3个 C89 C99 C11
ASNSI X3.159-1989 对应C89由ASNSI制定
ISO/IEC 9899:1990 还是C89,只是ISO从ASNSI那里“抄袭”过来,又称C90
ISO/IEC 9899/AMD1:1995 对于C89的补充,又称C95
ISO/IEC 9899:1999 C99标准
ISO/IEC 9899:2011 C11标准
//关于main函数的标准在C89和C99又有差异
类型一,不指明返回类型
main (){return 0;}
//这在C89中是合法的,因为不指明返回类型其实是隐含的告诉编译器,这个函数返回类型是int
//这在C99中是非法的,因为C99要求显式声明所有函数
类型二,不书写return ...;在main函数中
int main(void){}
// C89, 函数返回值未定义
// C99, 当main函数返回类型为int, 且没有写return语句时,默认返回0
// C99, 其他情况下,返回值未定义
类型三,定以返回值为非int
void main(void) {return;}
// C89, 非法(不bb, 就是非法)
// C99, 允许main函数返回类型由实现定义,支持void以及其他类型返回值
// 所以你的编译环境,不支持C99标准
// 而你的书,比较“新”
// 建议书写标准宏编译
#if __STDC_VERSION__ 199901L // 标准支持C99
void main(void)
#elif defined __STDC__ // 支持标准C(89/99)
int main(void)
#else // 如果都不支持,我也很难受
#error Standard C not support
#endif
考虑到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(),我并不推荐,就算编译器通过了,这种编程的风格也太不严谨,不利于好的习惯的养成。
我们用命令行时可以有很多选项参数,但main只有两个参数,所以第二个参数是数组,命令行的多个参数就可存在数组中了。
C语言中主函数指的是main函数
主函数的两个形参形式中的形参,允许从执行环境中传递任意的多字节字符串(它们通常被称为命令行参数),各个指针 argv.. argv[argc-1] 指向每个这些字符串的第一个字符。
argv[0] 是指向一个表示用于执行该程序自身的名字的空结尾多字节字符串(或者当执行环境不支持时,为空字符串 "")的开头字符的指针。这些字符串是可以改动的,虽然对它们的改动并不会被传回给执行环境:比如可以用 std::strtok 来使用它们。由 argv 所指向的数组的大小至少为 argc+1,其最后一个元素 argv[argc] 保证为一个空指针。
扩展资料:
C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,不能写成某个结构体或某个类的成员。虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。