数学でよく使う値を文字で表すやつですが、プログラミングにおける変数は値を一時的に保存しておくものであるところが少し違います。 要するに変化する数。
RPGのワンシーンを見てましょう。
まんさくの攻撃!!
スライムに9999ポイントのダメージ!!
これを表示する部分のプログラムはどうなっているのでしょう?
「まんさく」とか「スライム」とか「9999」とかの部分はその時により変えなくてはいけないので単純にprintfで文章を表示するわけにはいきません。
こうやります。
printf("%sの攻撃!!\n",name);
printf("%sに%dポイントのダメージ!!\n",enemyname,damage);
大体の意味は分かると思います。このnameとかdamageとかが変数です。
(数学と違って文字列も変数の値として扱えます。)
変数は「宣言」しないと使えません。
宣言とは値を保存するためのメモリを確保することです。
変数の型 変数名;
具体例
int hp;
char c;
とやると宣言できます。
変数は宣言した行以降で使えるようになります。
宣言より前の行に変数を参照する命令を書くとエラーがでるので注意してください。
そのため基本的には変数の宣言はプログラムの最初に行います。
変数の型とは代入される値の種類や変域のことです。 int型(整数)、double型(小数)、char型(文字)などいろいろあります。 変域が大きい型ほどメモリを使うので扱うデータに合わせた型を選びましょう。 また、int型の変数に小数を代入するなど型の違う値の代入は基本的にできないので注意してください。 なお、文字と文字列は違う扱いです。 char型は文字一文字を扱います。 文字列に関しては別の章で触れる予定です。
変数名は多少の制限はありますが自由につけることができます。 二文字以上の名前もつけれるので(abcはaとbとcの積ではなく「abc」という名前のひとつの変数)、中身がよく分かる名前をつけましょう。
宣言したての変数は保存場所を確保されただけで中身は空です。
よって中身を表示したり演算に使ったりする前に必ずなにか値を代入しておく必要があります。
初期値が入ってない変数の参照を行ってもエラーは出ませんがまともに実行される保証がないので(一見まともそうに見えて気づかないこともありますが)くれぐれも気をつけてください。
変数名=値;
具体例
hp=255;
c='A'; (←文字はシングルクォーテーションで囲う。ちなみに文字列はダブルクォーテーション)
これで代入できます。
変数の中身の表示のしかたは最初にあげた例を見てください。 変数を表示したい部分の%なんとかは型によって変わります。 int型は%d、char型は%cという感じに。 ややこしくなるのでまだ触れませんが%sは文字列用です。
複数の変数を宣言する時、同じ型なら一つずつ宣言しなくても
int a,b,c;
のようにまとめて宣言する書き方もあります。
宣言と初期値代入を以下のようにいっぺんに行う書き方もあります。
int a=5;
両方組み合わせることによって複数の変数をあるものは初期値を宣言と同時に代入し、あるものは宣言のみで、まとめて宣言できます。
int a=5,b,c=3;