第九回 6 月 16 日

課題の解答のヒント

次のプログラムをダウンロードして実行してみよ int_div.cint型の値同士の演算のため、代入する左辺値がdoubleでも演算結果は期待通りにならない。

4 式と演算子 つづき

4.6 論理演算子

4.6.1 論理型

通常 C で論理式を表す場合、int型で1を真、 0を偽として扱う。(0 でなければ真として扱われる。)

4.6.2 論理演算子

論理積「かつ」(&&)、論理和「または」(||)、否定「〜でない」(!)の演算子を論理演算子という。論理積と論理和演算子は 2 項演算子であり、否定演算子は単項演算子である。

論理演算子の種類
表記名称意味
&&AND演算子論理積
||OR演算子論理和
!否定演算子否定
4.6.3 関係演算子と等価演算子

関係演算子には、>, <, >=, <= があり、等価演算子には==, != がある。

4.7 算術演算子その2

4.7.1 複合代入演算子

算術演算と代入演算を合わせて行う複合代入演算子には以下のものがある。

複合代入演算子の種類
C の式中の表記複合代入単純代入
+=E1 += E2E1 = E1 + E2
-=E1 -= E2E1 = E1 - E2
*=E1 *= E2E1 = E1 * E2
/=E1 /= E2E1 = E1 / E2
%=E1 %= E2E1 = E1 % E2
<<=E1 <<= E2E1 = E1 << E2
>>=E1 >>= E2E1 = E1 >> E2

E1 = E1 + E2の意味は、E1+E2の演算結果を新たにE1に代入するという意味である。複合代入演算子はその省略形である。
<<>> とはシフト演算子と呼ばれるもので、E1 の値を右あるいは左にシフト(ずらす)操作を意味する。シフト演算子の結果は、次のサンプルコードshift.c で確認できる。

4.7.2 増分/減分演算子

char型及びint型の変数に 1 だけ増分させたり、減じたりする場合
i = i + 1;

i += 1;
と書く代わりに、
i++;
あるいは
++i;
と書くことができる。前置演算子(++i)と後置演算子(i++)との違いは、前置演算子が増分してから式を評価するのに対して、後置演算子は式を評価した後に増分されることが異なる。前置演算子と後置演算子の違いは、例 4.10 increment.cでわかる。


戻る

Shin-ichi ASAKAWA
asakawa@ieee.org