3.7.7 一元运算符

位的非运算不是惟一使用一个参数的运算符。和它一样,逻辑非(!)对一个true值得到一个false值。一元减(-)和一元加(+)是和二元减和二元加一样的运算符;根据表达式的书写方式,编译器能辨别属于哪一种用法。例如,语句

3.7.7 一元运算符 - 图1

有明确的含义。

编译器可以理解

3.7.7 一元运算符 - 图2

但是读者可能迷惑,所以写成

3.7.7 一元运算符 - 图3

更保险。

一元减得到一个负值。一元加实际上并不做任何事,只是和一元减相对应。

本章前面介绍了增量和减量运算符(++和—)。它们是涉及赋值的运算符中仅有的有副作用的运算符。这两个运算符使变量增加或减少一个单位,尽管对于不同的数据类型,“单位”可能有不同的含义—特别是对指针来说。

最后的一元运算符有C和C++中的地址运算符(&),间接引用(*和->)和强制类型转换运算符,以及C++中的new和delete。在本章的叙述中,地址和间接引用只与指针一起使用。类型转换在本章后面叙述,new和delete将在第4章介绍。