21

Re: Незрозумілі рядки. Вдосконалення навичок

Оператор ++ у паскалі відсутній — тож компілятор сприйме зайві плюси як серію унарних плюсів — числовий оператор, що нічого не змінює — таким чином, i++ + ++i — те ж саме, що i+i. Щось цікаве буде в Сі, Джаві та ін. — тобто, там, де оператор інкременту справді існує.

Подякували: leofun011

22

Re: Незрозумілі рядки. Вдосконалення навичок

P.Y. написав:

Оператор ++ у паскалі відсутній — тож компілятор сприйме зайві плюси як серію унарних плюсів — числовий оператор, що нічого не змінює — таким чином, i++ + ++i — те ж саме, що i+i. Щось цікаве буде в Сі, Джаві та ін. — тобто, там, де оператор інкременту справді існує.

Тут просто пожартували за С++

23

Re: Незрозумілі рядки. Вдосконалення навичок

P.Y. написав:

Оператор ++ у паскалі відсутній — тож компілятор сприйме зайві плюси як серію унарних плюсів — числовий оператор, що нічого не змінює — таким чином, i++ + ++i — те ж саме, що i+i.

Я думав, що компілятор видасть помилку. Те ж саме і з відніманням, діленням,множенням?

24 Востаннє редагувалося P.Y. (09.12.2015 13:19:25)

Re: Незрозумілі рядки. Вдосконалення навичок

КиївОболонь написав:
P.Y. написав:

Оператор ++ у паскалі відсутній — тож компілятор сприйме зайві плюси як серію унарних плюсів — числовий оператор, що нічого не змінює — таким чином, i++ + ++i — те ж саме, що i+i.

Я думав, що компілятор видасть помилку. Те ж саме і з відніманням, діленням,множенням?

З відніманням — кожен зайвий мінус змінюватиме знак операнда на протилежний. Т.ч., i-- - --i = i-(----i) = i-i. У Сі-подібних мовах -- — оператор зменшення на одиницю, можливий цікавий результат у різних компіляторах.

Унарного оператора «зірочка» в паскалі нема, тому i** * **i видасть помилку. У c/c++ унарна зірочка — оператор знаходження об'єкта за вказівником (тобто, такий вираз може мати сенс у сі, якщо i — вказівник на вказівник на вказівник на вказівник на ціле число, інакше має бути помилка). Java вказівникових операторів не має, тому помилка.

Ділення. Делфі, c++ і багато інших мов сприймають // як початок коментаря, тому частину рядка, що йтиме після, буде проігноровано. У турбопаскалі ці коментарі ще не підтримувались, наскільки я пам'ятаю — отже, помилка. Python має оператор ділення націло //, але що робити з п'ятьма слешами, він не знає, тому помилка.