C Что такое «арифметический оператор»? - PullRequest
0 голосов
/ 02 февраля 2019

Хотя, по крайней мере, с точки зрения волновой волны, я считаю, что знаю, что такое «арифметический оператор», я ищу формальное определение.Я изучил стандартный документ C17 и не могу найти такое определение, хотя в нем используется термин «арифметический оператор» в нескольких местах.

Самое близкое, что мне удалось найти, - это индексиз C17, где номера страниц предоставляются для аддитивного, побитового, приращения и уменьшения, умножения, сдвига и унарного под общим заголовком «арифметические операторы».Я смотрел в Интернете на различные источники, и самая распространенная вещь, которую я нашел, говорит только, что двоичные +, -, *, /, и% - это C-арифметические операторы.Некоторые также добавляют ++ и -.

Я почти уверен, что просто что-то упускаю, так как я нахожу стандарт довольно пугающим.Тем не менее, я также нахожу различные онлайн-источники несколько сомнительными, поскольку они часто кажутся разными.

Спасибо!

Обновление: поскольку некоторые читатели возражали против моих ссылок на C и C ++ в одной публикацииЯ удалил ссылки на C ++ в измененной версии выше и сделаю для нее отдельную публикацию позже, если смогу сначала решить проблему с C.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Стандарт C явно не определяет термин арифметический оператор , хотя он определяет, что такое арифметический операнд .Если вы читаете внимательно, в C ничего не определено с помощью термина арифметический оператор , оно существует только в виде группировки в индексе и в заголовке одного раздела.Термин арифметический оператор сам по себе не фигурирует в любом абзаце .

Из индекса мы действительно можем получить список

арифметические операторы

  • добавка, 6.2.6.2, 6.5.6, G.5.2
  • по битам, 6.2.6.2, 6.5.3.3, 6.5.10,6.5.11, 6.5.12
  • с приращением и уменьшением, 6.5.2.4, 6.5.3.1
  • мультипликативно, 6.2.6.2, 6.5.5, G.5.1
  • смещение, 6.2.6.2, 6.5.7
  • унарный, 6.5.3.3

Исходя из этого, мы можем сформулировать, что арифметические операторы - это операторы, для которых операнды должны быть арифметические операнды , то есть арифметического типа (за исключением особых случаев, таких как сложение указателя, вычитание), т.е.

  • добавка + и -
  • по битам &, | и ^
  • с приращением и уменьшением ++ и --
  • мультипликативные *, / и %
  • смещение << и >>
  • одинарное -, ~ и +.Это спорно ли ! арифметический оператор или нет, даже если он указан в разделе 6.5.3.3.

Еще одна известной вещи об этих операторах, что операнды может пройти обычные арифметические преобразования.

0 голосов
/ 02 февраля 2019

Арифматические операторы - это операторы, используемые для выполнения математических операций, таких как сложение, вычитание, умножение и деление.Так просто.

Пример: a + b = c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...