
61
5
章
式と演算子
式は定数、識別子、演算子の列で、指定された演算を行って評価する。プログラムにお
ける式の目的は、結果の値を得ること、または評価の副作用を生み出すこと、あるいは両
方(「5.1.3副作用と副作用完了点」参照)だ。
1つの定数、文字列リテラル、オブジェクトまたは関数の識別子は、それ自体で式だ。そ
のような単純な式または括弧で括られたより複雑な式が基本式と呼ばれる。C11標準は、
次節で述べる総称選択を基本式に追加した。
すべての式は型を持つ。式の型は式が評価された結果の値の型である。式が値を持たな
ければ、型
void
である。式の簡単な例を表5-1に示す(
a
が型
int
、
z
が型
float _Complex
の変数とする)。
表5-1 式の例
式 型
'\n' int
a + 1 int
a + 1.0 double
a < 77.7 int
"A string literal." char*
abort() void
sqrt(2.0) double
z / sqrt(2.0) double _Complex
表5-1の最後の項目からわかるように、複合式は式をオペランドにとる演算子で作られ
る。オペランドそのものは基本式でも複合式でもよい。例えば、関数呼び出しを乗算の要
素に使える。関数呼び出しの引数も、次の例のように、複数の演算子を含む式が使える。
2.0 * sin(3.14159 * fAngleDegrees/180.0)