--- title: C言語での引数の扱い author: kazu634 date: 2009-05-10 url: /2009/05/10/_1238/ 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$