忽略点十二:main函数参数
大家都知道,main函数的完整格式如下:
int main(int argc, char *argv[]) {
// ...
return 0;
}
这两个参数有什么用呢?
main
函数第一个参数是整数型,代表命令行参数的个数(系统依据用户输入的参数个数自动生成,非手动输入),第二个参是char *argv[]
,也就是char型指针数组,用于储存用户从命令行中传进来的参
例如:在命令行中输入./main hello world
此时,argc
为 3
,argv[0]
为./main
,argv[1]
为hello
,argv[2]
为world
命令行参数默认是由空格分隔,但如果某个参数中含空格我们应该怎么办
这时我们在输入含空格的参数时要用引号将整个参数包裹起来,例如:
执行./main “hello world” is my greet
此时,argc
为 5
,argv[0]
为./main
,argv[1]
为hello world
,argv[2]
为is
,argv[3]
为my
,argv[4]
为greet
易错点!!!!
int main(int arc, char **argv)中argc取的不是main函数的参数个数!!!
main函数个数固定是2!!argc取的是命令行中键入的参数个数!!而不是main函数的参数个数
关于参数的使用:
int main(int argc, char **argv) { //**argv等价于*argv[]
for (int i = 0; i < argc; i ++) {
printf("%s\n", argv[i]);
}
}
main函数的参数也挺有用的,比如你可以设置进入一个软件的两种模式
比如当strcmp(argv[1], “master”) == 0
时,进入该软件的管理员模式,其余情况或者无参时进入用户模式等等。
除了上述,main函数参还有很多黑科技!!!等待大家去发现,哈哈哈~
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢!