読み方 : たんこうえんざんし

単項演算子【unary operator】

概要

単項演算子とは一つの項を対象に演算を行い、一つの結果を得る演算子のこと。算術における階乗「n!」のように、与えられた項に決められた処理を施し、結果を返す。
単項演算子のイメージ画像

演算子は対象とする項(オペランド)の数によって分類されることがある。単項演算子はその中でも最も項が少ない演算子で、ただ一つの値や変数に作用して新たな値を返す。プログラミング言語では変数や定数を操作する手段として、いくつかの単項演算子が用意されている。

例えば、C言語やその記法を受け継ぐ多くの言語では、変数の値に1を加えるインクリメント演算子(x++)、1を減じるデクリメント演算子(x--)、正負の符号を反転する単項マイナス演算子(-x)、真偽値を反転する論理否定演算子(!x)、ビットを反転するビット反転演算子(~x)などが単項演算子に該当する。

C言語やC++言語では他に、ポインタが指す値を取り出す間接演算子(*x)、変数の記憶位置を取得するアドレス演算子(&x)、データ型の大きさを取得するsizeof演算子(sizeof(x))、データ型を変換するキャスト演算子((int)x)など、数値演算や論理演算­以外の操作を行うための単項演算子も多く用いられる。

インクリメント演算子デクリメント演算子には、変数の前に置く前置形式と後ろに置く後置形式があり、評価される値が異なる。「++x」は変数の値を増加させた後の値を返し、「x++」は現在の値を返した後に変数を増加させる。xが0のとき、if(++x==0)は先に加算が行われるため「1==0」と評価され偽(false)に、if(x++==0)は加算が後回しとなり「0==0」と評価され真(true)になる。

これに対し、「x+y」のように二つの項を用いて一つの結果を得る演算子は「二項演算子」と呼ばれる。四則演算比較演算論理積(AND)、論理和(OR)など算術演算子論理演算子の多くが含まれ、実用上はこちらが最も多く使われる。単項演算子は二項演算子に比べて使用頻度は低いものの、ループ処理におけるカウントの更新や状態の反転、メモリの直接操作など、簡潔な記述で特定の処理を完結させる場面で用いられている。また、言語によっては「x?a:b」のように三つの項から結果を選択する「三項演算子」も利用できる。条件式の真偽によってaまたはbを返す構文として、if文を簡潔に書き換える際に用いられる。

(2026.6.28更新)
 

他の辞典等による「単項演算子」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。