Приоритет операции
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Приоритет, ранг или старшинство операции или оператора — формальное свойство оператора/операции, влияющее на очередность его выполнения в выражении с несколькими различными операторами при отсутствии явного (с помощью скобок) указания на порядок их вычисления. Например, операцию умножения обычно наделяют бо́льшим приоритетом, чем операцию сложения, поэтому в выражении будет получено сначала произведение и , а потом уже сумма.
Операции могут иметь одинаковый приоритет, тогда они вычисляются по правилу ассоциативности, установленному для этих операций.
В формальных системах используется два способа задания приоритета любого оператора. Первый из них — распределение всех операторов по иерархии приоритетов. Этот способ всегда используется для задания приоритетов по умолчанию и фиксируется в описании языка в виде соглашения, что таким-то операторам присваивается такие-то приоритеты. Никакого отражения в синтаксисе языка он не получает, то есть при нём не используется никаких явных средств (= тех/иных символов) для указания приоритета операции.
Второй способ дает возможность менять приоритеты по умолчанию, указывая их в явном виде с помощью символов парных скобок. При этом глубина вложенности прямо пропорциональна величине приоритета, то есть более внутренние скобки указывают на больший приоритет, чем внешние, обрамляющие их. В предыдущем примере с суммой и произведением порядок вычисления можно поменять, используя скобки, записав всё выражение так: или же так: .
Практика ранжирования операций
Этот раздел нужно дополнить. |
В языке C++
Приоритет операций — очерёдность выполнения операций в выражении, при условии, что в выражении нет явного указания порядка следования выполнения операций (с помощью круглых скобок).
Если операции имеют одинаковый приоритет, то очерёдность выполнения таких операций определяется согласно свойству ассоциативности.
Ассоциативность — направление выполнения операций в случае, если операции имеют одинаковый приоритет:
| Приоритет | Операция | Ассоциативность | Описание |
|---|---|---|---|
| 1 | :: | слева направо | унарная операция разрешения области действия |
| [ ] | операция индексирования | ||
| () | круглые скобки | ||
| . | обращение к члену структуры или класса | ||
| -> | обращение к члену структуры или класса через указатель | ||
| 2 | ++ | слева направо | постфиксный инкремент |
| – – | постфиксный декремент | ||
| 3 | ++ | справа налево | префиксный инкремент |
| – – | префиксный декремент | ||
| 4 | * | слева направо | умножение |
| / | деление | ||
| % | остаток от деления | ||
| 5 | + | слева направо | сложение |
| — | вычитание | ||
| 6 | >> | слева направо | сдвиг вправо |
| << | сдвиг влево | ||
| 7 | < | слева направо | меньше |
| <= | меньше либо равно | ||
| > | больше | ||
| >= | больше либо равно | ||
| 8 | == | слева направо | равно |
| != | не равно | ||
| 9 | && | слева направо | логическое И |
| 10 | || | слева направо | логическое ИЛИ |
| 11 | ?: | справа налево | условная операция (тернарная операция) |
| 12 | = | справа налево | присваивание |
| *= | умножение с присваиванием | ||
| /= | деление с присваиванием | ||
| %= | остаток от деления с присваиванием | ||
| += | сложение с присваиванием | ||
| -= | вычитание с присваиванием | ||
| 13 | , | слева направо | запятая |
В сомнительных случаях следует использовать скобки. В некоторых случаях приоритет операций может давать неявные эффекты. Рассмотрим пример:
int n = 5; cout << n += 3; Несмотря на очевидность кода для человека, компилятор выдаст ошибку: в выражении в строке 2 первым выполнится оператор побитового сдвига (<<) так как его приоритет равен 6 и он выше чем приоритет оператора «сложение с присваиванием» (+=) 12. В итоге значение переменной n будет передано в поток cout, а операция += не выполнится.
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Приоритет операции, Что такое Приоритет операции? Что означает Приоритет операции?
V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 14 maya 2011 Prioritet rang ili starshinstvo operacii ili operatora formalnoe svojstvo operatora operacii vliyayushee na ocherednost ego vypolneniya v vyrazhenii s neskolkimi razlichnymi operatorami pri otsutstvii yavnogo s pomoshyu skobok ukazaniya na poryadok ih vychisleniya Naprimer operaciyu umnozheniya obychno nadelyayut bo lshim prioritetom chem operaciyu slozheniya poetomu v vyrazhenii x y z displaystyle x y cdot z budet polucheno snachala proizvedenie y displaystyle y i z displaystyle z a potom uzhe summa Operacii mogut imet odinakovyj prioritet togda oni vychislyayutsya po pravilu associativnosti ustanovlennomu dlya etih operacij V formalnyh sistemah ispolzuetsya dva sposoba zadaniya prioriteta lyubogo operatora Pervyj iz nih raspredelenie vseh operatorov po ierarhii prioritetov Etot sposob vsegda ispolzuetsya dlya zadaniya prioritetov po umolchaniyu i fiksiruetsya v opisanii yazyka v vide soglasheniya chto takim to operatoram prisvaivaetsya takie to prioritety Nikakogo otrazheniya v sintaksise yazyka on ne poluchaet to est pri nyom ne ispolzuetsya nikakih yavnyh sredstv teh inyh simvolov dlya ukazaniya prioriteta operacii Vtoroj sposob daet vozmozhnost menyat prioritety po umolchaniyu ukazyvaya ih v yavnom vide s pomoshyu simvolov parnyh skobok Pri etom glubina vlozhennosti pryamo proporcionalna velichine prioriteta to est bolee vnutrennie skobki ukazyvayut na bolshij prioritet chem vneshnie obramlyayushie ih V predydushem primere s summoj i proizvedeniem poryadok vychisleniya mozhno pomenyat ispolzuya skobki zapisav vsyo vyrazhenie tak x y z displaystyle x y cdot z ili zhe tak x y z displaystyle x y cdot z Praktika ranzhirovaniya operacijEtot razdel nuzhno dopolnit Pozhalujsta uluchshite i dopolnite razdel posvyashyonnyj praktike pripisyvaniya prioritetov raznym klassam operatorov v raznyh yazykah programmirovaniya i drugih formalnyh sistemah 31 yanvarya 2015 V yazyke C Prioritet operacij ocheryodnost vypolneniya operacij v vyrazhenii pri uslovii chto v vyrazhenii net yavnogo ukazaniya poryadka sledovaniya vypolneniya operacij s pomoshyu kruglyh skobok Esli operacii imeyut odinakovyj prioritet to ocheryodnost vypolneniya takih operacij opredelyaetsya soglasno svojstvu associativnosti Associativnost napravlenie vypolneniya operacij v sluchae esli operacii imeyut odinakovyj prioritet Prioritet Operaciya Associativnost Opisanie1 sleva napravo unarnaya operaciya razresheniya oblasti dejstviya operaciya indeksirovaniya kruglye skobki obrashenie k chlenu struktury ili klassa gt obrashenie k chlenu struktury ili klassa cherez ukazatel2 sleva napravo postfiksnyj inkrement postfiksnyj dekrement3 sprava nalevo prefiksnyj inkrement prefiksnyj dekrement4 sleva napravo umnozhenie delenie ostatok ot deleniya5 sleva napravo slozhenie vychitanie6 gt gt sleva napravo sdvig vpravo lt lt sdvig vlevo7 lt sleva napravo menshe lt menshe libo ravno gt bolshe gt bolshe libo ravno8 sleva napravo ravno ne ravno9 amp amp sleva napravo logicheskoe I10 sleva napravo logicheskoe ILI11 sprava nalevo uslovnaya operaciya ternarnaya operaciya 12 sprava nalevo prisvaivanie umnozhenie s prisvaivaniem delenie s prisvaivaniem ostatok ot deleniya s prisvaivaniem slozhenie s prisvaivaniem vychitanie s prisvaivaniem13 sleva napravo zapyataya V somnitelnyh sluchayah sleduet ispolzovat skobki V nekotoryh sluchayah prioritet operacij mozhet davat neyavnye effekty Rassmotrim primer int n 5 cout lt lt n 3 Nesmotrya na ochevidnost koda dlya cheloveka kompilyator vydast oshibku v vyrazhenii v stroke 2 pervym vypolnitsya operator pobitovogo sdviga lt lt tak kak ego prioritet raven 6 i on vyshe chem prioritet operatora slozhenie s prisvaivaniem 12 V itoge znachenie peremennoj n budet peredano v potok cout a operaciya ne vypolnitsya
