main関数の引数

ANSI Cの規格ではmain関数の引数の数は0個か2個のどちらかです。
前者の場合、
int main(void);
後者の場合、
int main(int argc, char *argv[]);
のようにプロトタイプ宣言されます。
argcとargvは
argc : argument count
argv : argument vector
の略称だそうです。
argcはプログラム実行時に渡される引数の数を格納しています。
argvはプログラム実行時に渡される引数の文字列を格納しているポインタ配列です。

以下に、argv[]が参照する文字列(各引数)を表示させるプログラムを示します。

/* argc_argv.c */

#include<stdio.h>       /* printf */

/* argc = argument count, argv = argument vector */
int main(int argc, char *argv[])
{
        int i;
        for(i=0;i<argc;i++){
/* argv[]が参照する文字列を1つずつ表示する。*/
                printf("argv[%d] = %s\n", i, argv[i]);
        }
        return 0;
}
/* 終わり */



#実行例

$ ./argc_argv We are the world
argv[0] = ./argc_argv
argv[1] = We
argv[2] = are
argv[3] = the
argv[4] = world



argcとargvは仮引数なので実際には任意の文字を当てることが可能です。
以下に、argc -> a , argv -> bと書き換えた例を示します。


/* argc_argv2.c */
#include<stdio.h>       /* printf */

/* argc = argument count, argv = argument vector */
int main(int a, char *b[])
{
        int i;
        for(i=0;i<a;i++){
/* argv[]が参照する文字列を1つずつ表示する。*/
                printf("b[%d] = %s\n", i, b[i]);
        }  
        return 0;
}



#実行例

$ ./argc_argv2 Come Together
b[0] = ./argc_argv2
b[1] = Come
b[2] = Together