Запитання з тегом «operator-precedence»

Операторська пріоритетність відноситься до правил, що регулюють порядок, в якому оператори оцінюються в межах виразу чи твердження мовою програмування. Відмінне від [замовлення на виконання], яке охоплює послідовність подій виконання в програмній системі.


10
'І' проти '&&' як оператор
У мене є кодовий де розробники вирішили використовувати ANDі ORзамість &&і ||. Я знаю, що в перевазі операторів є різниця ( &&йдеться раніше and), але з заданими рамками (якщо PrestaShop бути точним), це явно не є причиною. Яку версію ви використовуєте? Чи andчитабельніше, ніж &&? Або різниці немає?


4
Пріоритетність логічного оператора SQL: І та Ор
Чи є два твердження нижче еквівалентними? SELECT [...] FROM [...] WHERE some_col in (1,2,3,4,5) AND some_other_expr і SELECT [...] FROM [...] WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr Чи є якась таблиця істини, яку я міг би використати для перевірки цього?

1
Чому (1 в [1,0] == Істинно) визначається помилковим?
Переглядаючи відповіді на це питання , я виявив, що не розумію власної відповіді. Я не дуже розумію, як це розбирають. Чому другий приклад повертає помилкове? >>> 1 in [1,0] # This is expected True >>> 1 in [1,0] == True # This is strange False >>> (1 in [1,0]) == …

7
Чи дозволено коротке замикання логічних операторів? А порядок оцінювання?
Чи зобов’язаний стандарт ANSI дозволити логічним операторам бути короткозамкненим або в C, або C ++? Я збентежений, бо згадую книгу K&R, що ваш код не повинен залежати від короткого замикання цих операцій, оскільки вони можуть не робити. Може хтось, будь ласка, зазначить, де у стандарті сказано, що логічна операція завжди …

5
Чому потрійний оператор комами оцінює лише один вираз у справжньому випадку?
Зараз я навчаюсь C ++ із книгою C ++ Primer і однією з вправ у книзі є: Поясніть, що робить наступний вираз: someValue ? ++x, ++y : --x, --y Що ми знаємо? Ми знаємо, що потрійний оператор має вищий пріоритет, ніж оператор комами. З бінарними операторами це було досить просто …


7
Пріоритет оператора перед оператором Javascript Ternary
Я не можу накрутити голову навколо першої частини цього коду (+ =) у поєднанні з потрійним оператором. h.className += h.className ? ' error' : 'error' Як я думаю, цей код працює наступним чином: h.className = h.className + h.className ? ' error' : 'error' Але це не правильно, тому що це …

7
Забезпечення порядку замовлення заяв у C ++
Припустимо, у мене є ряд тверджень, які я хочу виконати у фіксованому порядку. Я хочу використовувати g ++ з оптимізацією рівня 2, щоб деякі твердження могли бути впорядковані. Які інструменти повинні застосовувати для певного впорядкування заяв? Розглянемо наступний приклад. using Clock = std::chrono::high_resolution_clock; auto t1 = Clock::now(); // Statement 1 …


3
Дивна проблема роботи в SQL Server: -100 / -100 * 10 = 0
Якщо ви виконаєте SELECT -100/-100*10результат є 0. Якщо ви виконуєте SELECT (-100/-100)*10результат є 10. Якщо ви виконуєте SELECT -100/(-100*10)результат є 0. Якщо ви виконаєте SELECT 100/100*10результат є 10. БОЛ заявляє: Коли два оператори в виразі мають однаковий рівень пріоритетності оператора, вони оцінюються зліва направо на основі їх положення в виразі. …


2
Чи має цей код із розділу 36.3.6 четвертого видання “Мова програмування C ++” чітко визначену поведінку?
У розділі STL-подібних операцій 4-го випуску мови програмування на мові програмування C ++ Бьярна Струструпа такий код використовується як приклад ланцюжка :36.3.6 void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, 4, "" ).replace( s.find( "even" ), 4, …

1
Операції з перевагою та бітовою маскою
Я натрапив на (здавалося б) дуже дивний випадок. Візьміть число 2 ( 0b10) і розмаскуйте його 1 ( 0b01) Це повинно давати 0b00еквівалент 0. Однак ось тут містер Шредінгер: var_dump(0b10 & 0b01); // int(0) var_dump(0b10 & 0b01 == 0); // int(0) var_dump(0b10 & 0b01 != 0); // int(0) Віскі. Танго. …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.