この関数を見つけましたが、その一部がわかりません。私は約3日分のCの経験があるので、我慢してください。この関数は、コマンドライン引数を解析する目的で使用されます。
なぜ彼らはに再割り当て
*arg
するの*c
ですか?なぜwhileループを実行しているのかわかりません。
次に、charポインターに対してwhileループを実行するのはなぜですか?charは実際には文字の配列であることを理解していますが、charに対してwhileループを実行するのは、配列の文字値に個別にアクセスするためだけであり、そのようなことはしません。
どのように文字に対してインクリメントできますか?
なぜ*cさえあるのですか?
文字列チェックを追加して、
-styles
たとえばargがであるかどうかを確認します-
。これにより、フラグを解析して、次のargである値を取得できますargv
—これは正しく使用されていますか?
私が言ったように、私は約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++;
}
}
}
}