単項算術演算子
C の単項プラス演算子、算術否定演算子、補数演算子、および論理否定演算子については、後の一覧で説明します。
演算子 |
説明 |
---|---|
+ |
かっこ内の式に続く単項プラス演算子は、かっこで囲まれた演算のグループ化を強制します。 これは、複数の結合的または可換的な二項演算子を含む式で使用されます。 オペランドは数値型である必要があります。 結果はオペランドの値です。 整数オペランドには整数の上位変換が加えられます。 結果の型は、昇格されたオペランドの型です。 |
– |
算術否定演算子は、オペランドの負数 (2 の補数) を生成します。 オペランドは整数値または浮動小数点値である必要があります。 この演算子は、通常の算術変換を行います。 |
~ |
ビットごとの補数 (またはビットごとの NOT) 演算子は、オペランドのビットごとの補数を生成します。 オペランドは整数型である必要があります。 この演算子は、通常の算術変換を行います。結果は変換後のオペランドの型です。 |
! |
論理否定 (論理 NOT) 演算子は、オペランドが true (ゼロ以外) の場合は値 0、オペランドが false の場合 (0) は値 1 を生成します。 結果は int 型になります。 オペランドは整数値、浮動小数点値またはポインター値である必要があります。 |
ポインターの単項算術演算は無効です。
例
次の例は、単項算術演算子を示します。
short x = 987;
x = -x;
上の例では、x の新しい値は 987 の負の値、つまり –987 です。
unsigned short y = 0xAAAA;
y = ~y;
この例では、y に割り当てられた新しい値は、符号なしの値 0xAAAA の補数、または 0x5555 です。
if( !(x < y) )
x が y 以上の場合、式の結果は 1 (true) になります。 x が y よりも小さい場合、結果は 0 (false) になります。