3.7.7. Operadores unarios

El not no es el único operador de bits que toma sólo un argumento. Su compañero, el not lógico (!), toma un valor true y produce un valor false. El menos unario (-) y el más unario (+) son los mismos operadores que los binarios menos y más; el compilador deduce que uso se le pretende dar por el modo en el que se escribe la expresión. De hecho, la sentencia:

x = -a;

tiene un significado obvio. El compilador puede deducir:

x = a * -b;

pero el lector se puede confundir, de modo que es más seguro escribir:

x = a * (-b);

El menos unario produce el valor negativo. El más unario ofrece simetría con el menos unario, aunque en realidad no hace nada.

Los operadores de incremento y decremento (++ y --) se comentaron ya en este capítulo. Son los únicos operadores, además de los que involucran asignación, que tienen efectos colaterales. Estos operadores incrementan o decrementan la variable en una unidad, aunque «unidad» puede tener diferentes significados dependiendo del tipo de dato - esto es especialmente importante en el caso de los punteros.

Los últimos operadores unarios son dirección-de (&), indirección (* y ->), los operadores de moldeado en C y C++, y new y delete en C++. La dirección-de y la indirección se utilizan con los punteros, descriptos en este capítulo. El moldeado se describe mas adelante en este capítulo, y new y delete se introducen en el Capítulo 4.