代入演算子 【assignment operator】
例えば、C言語やJavaなどで「a=1」と記述した場合、数学のように「aは1に等しい」という意味ではなく、「aに1を代入せよ」という命令として作用する。「+」が加算を行う演算子であるように、「代入という操作を行うための演算子」と考えられるため、代入演算子と呼ばれる。
一方、条件式などの中で、両辺の値が等しいか否かを判定する演算子のことは「等価演算子」(equality operator)という。C言語等では「==」がこれに当たり、「a==1」という式は「aの値は1に等しいか否か」を表す真偽値(1ならtrue、1以外ならfalse)となる。
代入演算子に「=」を用いる言語では、例えば「現在の値に1を加える」という操作を「a=a+1;」のように記述するため、初学者が数学の等式との違いで混乱し、つまずきの原因になっているといった批判もある。Pascalのように代入を「:=」、比較を「=」として数学の表記に近づけた言語もある。
言語によっては、算術演算子などと組み合わせ、代入時に同時に演算を行うことができる複合的な演算子も用意されており、「複合代入演算子」(compound assignment operator)という。例えば、「a+=1;」のように記述すると「aの元の値に1を加算した値をaに代入する」という意味になる。
(2023.7.10更新)