Main函数
一个程序需要有且只有一个main函数,这个函数是程序开始执行的地方。
Main函数的形式
int main(){body}
int main(int argc, char *argv[]){body}
body: 函数体; argc:传入函数的参数个数; argv:传入的参数的字符串数组
main函数中argc,argv这两个变量的名称是可以自由变化的,char * argv[] 也可以写成 char **argv。
解释
- 程序开始执行,先执行静态存储期对象的初始化,然后再执行main函数。
- 对于宿主在操作系统的程序来说,main函数就是程序执行的开始位置(不考虑初始化阶段)。对于独立程序(boot loader or OS kernels),程序的起始位置是由程序决定的。
- main函数不能在程序中调用,main函数不能递归调用,不能获取main函数的地址。
- main函数可以不包含return语句。如果main函数执行到最后,并且没有遇到return。则会默认执行return 0;
- 在main中,执行return(显式或隐式),等价于先退出函数(destroy 局部变量),再调用std::exit,使用和return相同的参数。(destroy静态对象,和终止程序)
- 如果static对象的析构函数产生异常,程序不会捕捉到