ちょっとC言語の勉強をしています。テキストは『プログラミング言語C 第2版 ANSI規格準拠』です。Lispで置き換え可能なものは適宜Lispで書き直しながらの勉強をしています。

ようやく50ページほどまで進み引数の扱い方が出てきたので、ちょっとまとめておきます。

#include <stdio.h>
/* Begins here */
int main(int argc, char *argv[]) {
int i;
printf("引数の数: %d\n", argc);
for (i = ; i < argc; ++i)
{
printf("%d番目の引数: %s\n", i, argv[i]);
}
return ;
}

Cでの引数の扱い方はこんな感じです:

引数の数 引数
argc argv[n] (0 < n < argc)

これをコンパイルして実行するとこんな感じになります:

bash-3.2$ gcc -o foo test.c
bash-3.2$ ./foo
引数の数: 1
(): ./foo
bash-3.2$ gcc -o foo test.c
bash-3.2$ ./foo
引数の数: 1
番目の引数: ./foo
bash-3.2$ ./foo 1 2 3 4 5
引数の数: 6
番目の引数: ./foo
1番目の引数: 1
2番目の引数: 2
3番目の引数: 3
4番目の引数: 4
5番目の引数: 5
bash-3.2$
プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠