3.パラメータの入力
値を変更するたびにコンパイルをするのは大変です。パラメータとしてプログラム
へ受け渡してみましょう。
まずは、下記の5行を入力してコンパイルして下さい。プログラム名は仮に
paradisp.cとして下さい。
#include <stdio.h>
main(int argc, char *argv[])
{
printf("パラメータは[%s]です。\n", argv[1]);
}
コンパイルエラーはなくなりましたか?
それでは、実行してみましょう。実行する際はパラメータを指定します。
paradisp parameta
いかがですか?
画面には「引き数は[parameta]です。」と表示されましたか?
今回の学習項目
1)main(int argc, char *argv[])
mainへ受け渡す為の定義です。
intのargcには引き数の個数が入ります。
今回は「paradisp parameta」だったので、2が入っています。
charのargvには引き数の文字列が入ります。
今回は、argv[0]には「paradisp」で、argv[1]には「parameta」です。
[0]や[1]は配列と言って、文字列をとっておく箱が0から順に1、2、3と
用意されていると思って下さい。もちろん指定された個数分だけです。
2)char *
文字列を定義する時の指定は、「char mojiretu[256];」です。
ここで「mojiretu」は任意の名前で、256は文字列の長さです。
そして、文字列を受け渡す時に、受け取る側が「char *mojiretu」とします。
これは、文字列自体を受け渡すのではなく、文字列が入っているエリアの
「ポインタ」を受け渡します。
C言語を少しでも経験した方なら「ポインタ」或は「アドレス」で、とまどう
所でしょう。
(内緒ですが、僕は未だにポインタ*やアドレス&や配列[x]やへたすると
ポインタのポインタ**等でつまづいています。本業の仕事中でもです。)
話はそれましたが、文字列や配列に関しては、メモリの位置を指している
ポインタで受け渡す事を忘れないで下さい。