gpt4 book ai didi

C 什么是 "arithmetic operator"?

转载 作者:行者123 更新时间:2023-11-30 18:27:34 25 4
gpt4 key购买 nike

虽然至少从手波的角度来看,我相信我知道“算术运算符”是什么,但我正在寻找一个正式的定义。我检查了 C17 标准文档,但找不到这样的定义,尽管它在多个地方使用了术语“算术运算符”。

我能找到的最接近的是 C17 的索引,其中在公共(public)标题“算术运算符”下提供了加法、按位、递增和递减、乘法、移位和一元的页码。我在网上查看了各种来源,最常见的只是说二进制 +、-、*、/和 % 是 C 算术运算符。有些还加上++和--。

我很确定我只是错过了一些东西,因为我确实发现该标准相当令人畏惧。然而,我也发现各种在线资源有些可疑,因为它们通常看起来有所不同。

谢谢!

更新:由于一些读者反对我在同一篇文章中对 C 和 C++ 的引用,因此我在上面的修改版本中删除了对 C++ 的引用,并且如果我能先得到的话,稍后将对其进行完全单独的发布C 的问题已解决。

最佳答案

C 标准没有明确定义术语算术运算符,但它定义了算术操作数是什么。如果您仔细阅读,C 中没有任何内容是通过使用术语算术运算符来定义的,它仅作为索引和一个部分的标题中的分组存在。术语算术运算符本身不会出现在任何段落中。

来自the index ,我们确实可以得到一个列表

arithmetic operators

  • additive, 6.2.6.2, 6.5.6, G.5.2
  • bitwise, 6.2.6.2, 6.5.3.3, 6.5.10, 6.5.11, 6.5.12
  • increment and decrement, 6.5.2.4, 6.5.3.1
  • multiplicative, 6.2.6.2, 6.5.5, G.5.1
  • shift, 6.2.6.2, 6.5.7
  • unary, 6.5.3.3

由此我们可以得出算术运算符是那些要求操作数是算术操作数的运算符,即算术类型(除了特殊情况,例如指针)加法、减法),即

  • 添加剂+-
  • 按位 & , |^
  • 递增和递减 ++--
  • 乘法* , /%
  • 类次<<>>
  • 一元 - , ~+!是否是有争议的是否是算术运算符,即使它在第 6.5.3.3 节中列出。

关于这些运算符的另一个值得注意的事情是操作数可能会进行通常的算术转换。

关于C 什么是 "arithmetic operator"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54489835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com