2.3.7 自增、自减运算符
这两个运算符的名字挺有趣,不过先在这儿告诉大家,这两个运算符是最简单的,同时也是最让人头疼的两个运算符,很容易让人疑惑。
先说它简单的原因吧,它们都是一目运算符,作用就是对操作数进行加 1 或减 1 的操作,自增运算符就是让操作数加 1,自减运算符就是让操作数减 1,是不是很简单?当然看到这也该知道它们都是带副作用的运算符了吧。
那又为什么会说它们是容易让人疑惑的运算符呢?因为它们会“变身”。不可思议吧,它们“摇身一变”就会各自多出个孪生的兄弟出来,让人不小心就被迷惑,分不清谁是谁了。也就是说自增、自减运算符不是两个,而是四个运算符。为了分清它们,把它们中的一个称为“前缀的”,另一个称为“后缀的”,所以就有了两个前缀的自增、自减运算符和两个后缀的自增、自减运算符。
还是通过一个例子让它们露出“庐山真面目”吧,例如现在有一个整型变量 a,它的初始值为 1,现通过自增、自减运算符来对它进行操作,看看是何结果,具体见表 2.14。
表 2.14 自增、自减运算符
先来看自增运算符,所谓前缀就是运算符在操作数的前面,后缀就是运算符在操作数的后面,不管是使用前缀或是后缀,通过运算都会让操作数加 1,也就是变量 a 的值都会被修改(运算符的副作用产生的效果)为 2。也许有读者注意到表里的后缀自增所对应的“结果”栏里明显是 1!注意!“结果”栏里显示的不是变量 a 的最终值,而是通过这个自增运算符运算后产生的新值。如果使用前缀自增运算符,新值就是操作数加 1 之后的值,如果使用的是后缀自增运算符,则新值就是操作数加 1 之前的值。
重点就在这里:如果我们只是单纯地希望操作数加 1,而不会去使用这个新值,则不管使用前缀的或后缀的自增运算符都可以;反之,如果需要使用这个新值,则前缀的与后缀的就有区别了,下面再用代码片段来说明一下:
最终 4 个变量中,由于经过自增运算,变量 a 和 b 的值都被修改为 11,变量 m 得到的新值为变量 a 修改(加 1)之后的值,所以也是 11,而变量 n 得到的新值为变量 b 修改之前的值,所以是 10。
自增运算符如果搞懂了,那么自减运算符也就自然懂了,此处不再赘述。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论