アロー演算子

構造体のポインタを利用して、そのポインタが表す変数のメンバを使おうとすると、例えば、下のようにしたくなる。

しかし、C言語では、演算の優先順位が決まっていたが、実は、「*」よりも「.」のほうが優先順位が高いので、*puriko.gakunenの部分は

のように処理されてしまう。すると、purikoはポインタであって、構造体の変数ではないので、エラーとなってしまう。従って、

のように書かなくてはいけないが、毎回、このように書くのは面倒である。そこで、アロー演算子という構造体を表すポインタについて、そのポインタに対応する変数のメンバにアクセスすることが出来る演算子が定義されている。

文法

構造体を示すポインタ->構造体のメンバ変数

上の例であれば、

と書けばよい。これを使うと、構造体に含まれる変数を書き換えるプログラムが簡単にかけるようになる。

練習問題

神戸市の気温、降水量(単位位はmm)、日照時間(単位は時間)のデータを読み取り、平均気温を計算するプログラムを書き換え、気温、降水量、日照時間の各変数の平均を計算するプログラムを作成したい。そのようになるように、以下のプログラムを完成させよ。