C言語 argc argvとは? main関数の引数について

C言語のプログラムをコンパイルして
アプリケーション(.exe)実行ファイルを作成したとしましょう。

その(.exe)実行ファイルは
ダブルクリックすれば起動する事ができます。

それ以外にコマンドラインから呼ぶこともできます。

この時に、文字列による引数を渡す事ができます

アプリケーションが起動すると、main関数から処理が始まります。

main関数の引数は、第1引数には渡された引数の数、
第2引数には渡された引数(文字列)が配列として格納されます。

コマンドラインから
show.exeアプリケーションを引数ありで起動させる例

>show.exe 50 aaa 999

プログラム名:show.exe

#include <stdio.h>

int main(int argc, char* argv[]) {
      printf("引数の数:%d\n", argc);
      printf("第1引数:%s\n", argv[0]);
      printf("第2引数:%s\n", argv[1]);
      printf("第3引数:%s\n", argv[2]);
      printf("第4引数:%s\n", argv[3]);
}

出力

引数の数:4
第1引数:show.exe
第2引数:50
第3引数:aaa
第4引数:999

この場合、引数の数は4つです。(プログラム名も引数として渡されます。)

これで、main関数の引数の値を
プログラムの中で使う事ができるようになりました。