main 関数
main も一種の関数です.今までのプログラムでは,
int main()
と記述していたため,引数を持ちませんでした.しかし,例えば,
add 2 3
とキーボードから入力すると,2 つの値 2 と 3 の和を計算し,その結果をコンソールに出力したいような場合が存在します.このような場合,2 や 3 が main 関数(
メインプログラム
,
主プログラム
,
main program
)の引数とみなされます.ただし,main 関数の場合は,引数の受け渡し方が以下のように決まっています.
int main ( int argc, char *argv[], char *envp[] )
argc
: コマンドラインからプログラムへ渡された引数の数を指定する整数.プログラム名も引数と見なされるので, argc は 1 以上の値となります.「 add 2 3 」のような場合は,3 となります.
argv
: null 文字で終わる文字列の配列. char へのポインタの配列 ( char *argv[] ),または,char へのポインタへのポインタ ( char **argv ) として宣言できます. 最初の文字列 ( argv[0] ) はプログラム名で,その後に続く各文字列はコマンドラインからプログラムへ渡される引数(文字列)です. 最後のポインタ( argv[argc] )は NULL です.
envp
: 環境文字列の配列へのポインタ. char へのポインタの配列 ( char *envp[] ),または,char へのポインタへのポインタ ( char **envp ) として宣言できます. 配列の最後は NULL ポインタで示します.