さて、今回は演算子を解説します。演算子というと聞き慣れないですが、要は
+とか−のような演算子のことです。Cにはいくつかの演算子がありますが、こ
れも少し知っているだけでOKです。また、演算子には単項演算子と二項演算子
があります。単項演算子は一つの数または変数に対して演算を行うもので、二項
演算子は2つの数または変数の演算に用いられます。
二項演算子 単項演算子
------------- --------------
+ 足し算 ++ インクリメント(1足す)
- 引き算 -- デクリメント(1引く)
/ わり算 ! 論理演算(NOT)
* かけ算 ~ 論理演算(補数・ビット反転)
% 剰余(あまりの算出)
& 論理演算(AND)
| 論理演算(OR)
論理演算(XOR)
= 代入
i.e. C++ というのは C を1足したものという事だったんです。ハイ
それでは実際にどのように使われるかをみてみましょう。
/* プログラム開始 */
#include <stdio.h>
void main()
{
int iTest1,iTest2; /* iTest1 = ?? iTest2 = ?? */
iTest1 = 83;
iTest2 = 19;
/*iTest1 = 83 iTest2 = 19 */
iTest1 --;
iTest2 ++;
/*iTest1 = 82 iTest2 = 20 */
iTest1 = iTest1 - 2;
iTest2 = iTest1 / iTest2;
/*iTest1 = 80 iTest2 = 4 */
iTest1 = iTest2 * 16;
/*iTest1 = 64 iTest2 = 4 */
printf("TEST1 = %d",iTest1);
printf("TEST2 = %d",iTest2);
}
/* プログラム終了 */
ここまではなにも問題ないでしょうか?ここにもあるように、変数Aに5を足し
たものをAに代入という A=A+5; という式はプログラムを書く上で無数に登
場してきます。例えば iVeryVeryLongLongNameHensu という変数に 68000 を足すと
いうのを書くのに
iVeryVeryLongLongNameHensu = iVeryVeryLongLongNameHensu + 68000;
と書かなければなりません。これは非常にうっとうしいので次の様な書き方はCに
存在します。このように書いても同じ動作をしてくれます。
iVeryVeryLongLongNameHensu += 68000;
これは非常に便利でよく使う書き方なので必ず覚えておいてください。同じ様に
iItem を 13 で割ったあまりを iItem に代入するのには iItem %= 13 と二項演算
子すべてに使えます。
最後に単項演算子である ++ や -- には二通りの書き方があります。
iValue ++;
++ iValue;
これらは単文で書くには同じ動作をします。しかし次の様な場合には違いが現れ
ます。一見不思議な書き方ですが、これでもコードは正常なのです。
iValue = iItem ++;
この場合 iItem の内容が iValue に代入されてから
iItem がインクリメントされる。
iValue = ++ iItem;
この場合 iItem の内容が iValue に代入される前に
iItem がインクリメントされる。
よって二つの書き方に違いが現れるのです。しかしこれらのコーディングは非常
に見づらい書き方であり、こんなトリッキーなソースは書くべきではなく。
iItem ++ ;
iValue = iItem;
と書けばいいのである。みなさんくれぐれも分かりやすいソースを書くように
しましょう。と、いうことで今回はこれまで、次回はついに if へと進みます。
では、お楽しみに。
|