我找到了这个功能,但我不明白它的某些部分。我有大约 3 天的 C 经验,所以请耐心等待。此函数用于解析命令行参数。
为什么他们重新分配
*arg
到*c
?我不明白他们为什么要运行一个while循环。
其次,他们为什么要针对 char 指针运行 while 循环?我知道 char 实际上是一个字符数组,但我的理解是他们只会对 char 运行一个 while 循环,即单独访问数组字符值,而他们不会做任何事情。
你怎么能增加一个字符?
为什么我们甚至有 *c?
我添加了字符串检查以查看 arg 是否是
-styles
例如,它有一个-
所以我可以解析标志并获取值,它是下一个 argargv
— 使用正确吗?
就像我说的,我有大约 3 天的 C 经验,所以请彻底、有条不紊,并尽可能帮助我更好地理解这个函数和 C 整体。
void print_args(int argc,char *argv[])
{
int i;
if(argc > 1){
for(i=1;i<argc;i++){
char *arg = argv[i];
char *c = arg;
while(*c){
if(strchr("-", *c)){
printf("arg %d: %s -> %s\n",i,arg,argv[i+1]);
}
c++;
}
}
}
}