文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2.3.6 带副作用的运算符
算术运算符、关系运算符、逻辑运算符和位运算符,不管是单目还是双目,都有一个共同之处:这些运算符不会修改操作数,只会通过运算产生一个新值作为结果返回。例如“!0”,表示对操作数 0(假)进行逻辑非运算,这会产生一个新的值 1(真)作为结果返回,而不是把 0(假)修改成 1(真);再例如“23 << 1”,表示将左操作数 23 按位左移 1(右操作数)位后,产生一个新值 46 作为结果返回,它并不会修改左操作数 23 和右操作数 1 的值。
那么有没有可以修改操作数的运算符呢?答案是肯定的,例如之前学过的赋值运算符和复合赋值运算符,这些运算符都会把产生的结果赋值给左操作数,也就是它修改了左操作数的值。我们通常把这些能够改变操作数的行为称为“副作用”,把拥有这类行为的运算符称为“带副作用的运算符”。赋值运算符和复合赋值运算符就是属于这种带副作用的运算符。这时,肯定有读者会好奇,想刨根问底,C 语言中还有其他带副作用的运算符吗?哈哈,你猜!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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