--- title: C言語での引数の扱い author: kazu634 date: 2009-05-10 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4583;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - C ---

ちょっと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規格準拠