BohYoh.comトップページへ
C & C++ FAQ
目次

C C++ プログラムに渡される引数を扱うにはどうすればよいですか。

 ホスト実行環境で動作するプログラムでは、main関数は

int main(void) { /* ... */ }

あるいは

int main(int argc, char * argv[]) { /* ... */ }

として定義することになります。仮引数は、main関数に対して局所的であるため,どのような名前でも構いません。
 二つの仮引数を定義する場合,関数mainの仮引数は、次の制約に従います。  プログラム仮引数argvの内容を表示するプログラム例を示します。

#include <stdio.h> int main(int argc, char *argv[]) { int i; for (i = 0; i < argc; i++) printf("argv[%d] = \"%s\"\n", i, argv[i]); return (0); }

 argvがポインタであることを利用し、次の文字列を指すようインクリメントしながら表示するには、以下のようにします。

#include <stdio.h> int main(int argc, char **argv) { int i = 0; while (argc--) printf("argv[%d] = \"%s\"\n", i++, *argv++); return (0); }

 また、一文字ずつなぞりながら表示するには、以下のようにします。

#include <stdio.h> int main(int argc, char **argv) { int i = 0; char c; while (argc--) { printf("argv[%d] = \"", i++); while (c = *(*argv)++) putchar(c); argv++; printf("\"\n"); } return (0); }


■ 根拠 ■
標準C §5.1.2.2.1 Program startup
標準C99 §5.1.2.2.1 Program startup
標準C++ §3.6.1 Main function

戻る

BohYoh.comロゴ