Как выполняется выражение x---y? Это юридическое выражение?
Как выполняется выражение x --- y? Это юридическое выражение?
Ответ 1
Это законно и проанализировано как x-- - y.
Я считаю, что первые два минус-знака интерпретируются как оператор пост-декремента, потому что это самый длинный токен, следующий за x, который является законным для появления. Это оставляет третий минус, чтобы играть роль вычитания.
Это соответствует правилу Максимальное многократное правило [1]
Ответ 2
Это связано с приоритетом оператора. Посмотрите на эту таблицу .
Оператор декремента/приращения имеет приоритет над арифметическими операциями. Он будет анализироваться как x-- - y.
Чтобы исправить мой ответ: Парсер сначала сопоставляет самый длинный токен, поэтому выбирается по арифметике -. Результат в выражении, анализируемом как x-- - y
Ответ 3
Для всех типов данных он анализируется как x-- - y. Если это некоторый объект class, тогда вы должны определить оператора пост декремент и минус оператор, он даст ошибку компилятора, если вы просто определите пре декрет. Это означает, что x-- - y принудительно в любом случае.
Ответ 4
(х -) - у; Какой компилятор вы используете? Каковы типы x и y?