通常情况下,我们编辑C程序时,编辑的都是编辑入口函数。
int main() {
//
return 0;
}
显而易见,main函数的返回值是是一个int类型的数(main函数给操作系统返回程序退出码),那么,main函是不是也会有参数呢。
是的,main函数也是有参数的,而且不止一个。
main函数参数解析
main函数的庐山真面目是
int main(int argc,char *argv[],char *envp[]) {
//
return 0;
}
- argc 表示 argv[] 中有效命令行参数的个数。
- argv[]数组实际参数为argc+1个,每个元素是一个字符指针(char*),指向一个字符串,这些字符串就是命令行中的每一个参数。最后一个字符串为NULL空指针,第一个字符串为可执行文件名。
- envp[]为环境变量,数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针,很少用,可以省略不写。
既然main函数有参数,那么为什么我们平常的程序里没有写它编译也能通过呢,这是因为main函数的参数是可选的,即不写也可以。
通常main函数参数运用的场景多在命令行下,例如Linux,在命令行下,我们可以在程序外对函数传入参数,是程序更加灵活,更加方便使用。