[Powered by Google Translate] Precendence je, jak jsme odpovědět na otázku, jak by měla operace měli udělat jako první?
Ať řešení matematických rovnic nebo při zpracovávání řádků počítačového kódu,
existují přísná pravidla přednosti, na které se řídíme
tak, aby všechny počítače a lidé mohou získat stejný výsledek.
>> Za prvé, nejdůležitější pravidlo na paměti, obzvláště v hlášení testování,
je to, že jsme se vždy pracovat od nejniternějších závorkách vnější.
Pomocí fotku závorek může být užitečné ladění taktika,
ale to není dobré praxe vrhu kódu s nepotřebných závorkách.
Udělejte si čas naučit se základní priority operátorů pravidla.
>> Druhý Obecným pravidlem je, že pokud provozovatelé mají stejnou PRIORITNÍCH,
jednoduše vyřešit zleva doprava.
Pokud se jedná o jednoduchou matematikou začneme se závorkami,
pak dělat násobení a dělení, a konečně to sčítání a odčítání.
Násobení a dělení mají stejnou prioritu,
protože jsou v podstatě provádí stejné operace.
Po tom všem, rozdělení je jednoduše vynásobením inverzní hodnoty.
Podobně, odčítání je pouhým přidáním záporné hodnoty.
>> Pojďme udělat příklad.
Po pořadí, začneme s závorkách. Devět minus 1.
To nám dá 8. Pak můžeme přejít k rozdělení a násobení.
Budeme řešit zleva doprava. Tak 10 děleno 2 je 5.
Máme 5 krát 8 tady, a že nám dá 40.
Pak se přesuneme na další pořadí.
Takže jsme opustili s 3 plus 40 minus 1.
Opět jen řešení zleva doprava,
protože tam je stejná priorita mezi sčítání a odčítání.
Dá se říci, 3 plus 40 je 43, minus 1 je 42. To je naše odpověď.
>> K dispozici jsou 2 typy Decrement a přírůstek subjekty;
Prefix forma, a přípona formulář.
Přípona forma, i + +, se běžně používá v pro smyčky,
, což znamená, že se hodnota proudu je používán ve výrazu, a pak se zvýší.
Takže hodnota bude pouze lišit příště proměnná je použita.
Na druhé straně, prefix zvýšení nebo snížení znamená, že hodnota proudu
je zvyšovat nebo snižovat první, a pak se používá ve výrazu.
>> Vezměme si příklad s celočíselným x.
Budeme nastavte výši 5.
Pokud budeme používat příponu operátora na něj a řekl x + +, x na tomto řádku je stále 5.
Pokud bychom měli ji vytisknout bychom si hodnotu 5.
Ale jít vpřed x1 skutečnost se rovná 6.
Tak tady na tomto řádku je x rovno 6, a pokud jsme si vytiskli to bychom se dostali hodnotu 6.
Nyní, když se používá prefix operátor, + + x, x je zvýšen a teprve potom se hodnota se používá.
Takže je to rovna 7 na této lince.
Zvyšování samozřejmě 6-7, a když jsme byli ji vytisknout bychom získat hodnotu 7.
>> Poslední nuance v precendence, že se podíváme na městě s ukazatelem zápisu.
The dereference Provozovatel, hvězda, má přednost před základní matematické operátory,
ale ne nad příponou incement a dekrementační operátory.
To nás vede k naší poslední příklad.
Vezměme si integer x, a nastavte ji na hodnotu 7.
Budeme také ukazovacího y a nastavte ji rovno na adresu x.
Takže když jsme dereference y bychom se měli dostat hodnotu 7.
Nyní v tomto řádku kódu, máme poněkud nejasnou situaci.
Jsme dereferencing y první, a pak navýšením hodnoty 7?
Nebo jsme zvyšování ukazatel a pak dereferencing to?
Ve skutečnosti, protože přípona přírůstek operátor má přednost před
dereference provozovatel, jsme snaží zvýšit ukazatele y,
které by přesuňte ukazatel podle velikosti int bajtů.
V podstatě nám dává adresu v nějakém úplně jiném místě v paměti,
a pak jsme dereferencing to.
Takže je to velmi bezvýznamné line.
Pokud bychom skutečně chtěli zvýšit hodnotu 7,
budeme muset dát dereference provozovateli y v závorkách.
Pak bychom se mohli zvyšovat ji.
Takže zatímco bychom se zvyšování hodnotu x s ​​Druhý až poslední řádek kódu,
v posledním řádku kódu bychom infact dereference y
získat hodnotu x a zvýšíte, že.
Rádi bychom zůstat s hodnotou x se rovná 8.
>> Zde je rychlý rekapitulace precendence pravidel, která jsme mluvili.
Začneme s nejvnitřnějších závorek a práce ven.
Pak jsme přejít na přípony subjektům, jako i + + nebo i -.
Pak dereference a adresa subjektů, jako je star x nebo ampersand ax,
a prefix subjekty, jako je + + i nebo - I.
Nakonec jsme to jednoduché matematické operace jako násobení, dělení, modulo.
Pak sčítání, odčítání.
To je precendence. Jsem Jordan Jozwiak, a to je CS50.
Budeme dereference a použijte adresu a - jak se vám frázi, že?
Skončil jsem. Dobře.