返回介绍

2.3.6 带副作用的运算符

发布于 2025-04-11 22:32:52 字数 492 浏览 0 评论 0 收藏 0

算术运算符、关系运算符、逻辑运算符和位运算符,不管是单目还是双目,都有一个共同之处:这些运算符不会修改操作数,只会通过运算产生一个新值作为结果返回。例如“!0”,表示对操作数 0(假)进行逻辑非运算,这会产生一个新的值 1(真)作为结果返回,而不是把 0(假)修改成 1(真);再例如“23 << 1”,表示将左操作数 23 按位左移 1(右操作数)位后,产生一个新值 46 作为结果返回,它并不会修改左操作数 23 和右操作数 1 的值。

那么有没有可以修改操作数的运算符呢?答案是肯定的,例如之前学过的赋值运算符和复合赋值运算符,这些运算符都会把产生的结果赋值给左操作数,也就是它修改了左操作数的值。我们通常把这些能够改变操作数的行为称为“副作用”,把拥有这类行为的运算符称为“带副作用的运算符”。赋值运算符和复合赋值运算符就是属于这种带副作用的运算符。这时,肯定有读者会好奇,想刨根问底,C 语言中还有其他带副作用的运算符吗?哈哈,你猜!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。