КиївОболонь написав:P.Y. написав:Оператор ++ у паскалі відсутній — тож компілятор сприйме зайві плюси як серію унарних плюсів — числовий оператор, що нічого не змінює — таким чином, i++ + ++i — те ж саме, що i+i.
Я думав, що компілятор видасть помилку. Те ж саме і з відніманням, діленням,множенням?
З відніманням — кожен зайвий мінус змінюватиме знак операнда на протилежний. Т.ч., i-- - --i = i-(----i) = i-i. У Сі-подібних мовах -- — оператор зменшення на одиницю, можливий цікавий результат у різних компіляторах.
Унарного оператора «зірочка» в паскалі нема, тому i** * **i видасть помилку. У c/c++ унарна зірочка — оператор знаходження об'єкта за вказівником (тобто, такий вираз може мати сенс у сі, якщо i — вказівник на вказівник на вказівник на вказівник на ціле число, інакше має бути помилка). Java вказівникових операторів не має, тому помилка.
Ділення. Делфі, c++ і багато інших мов сприймають // як початок коментаря, тому частину рядка, що йтиме після, буде проігноровано. У турбопаскалі ці коментарі ще не підтримувались, наскільки я пам'ятаю — отже, помилка. Python має оператор ділення націло //, але що робити з п'ятьма слешами, він не знає, тому помилка.